Skip to content
Mark edited this page Mar 18, 2020 · 1 revision

配置 SDK

SDK 的所有配置都集中于 Config 对象中, 该对象也用于 QingStor 和 Bucket 对象的初始化,所以在使用 SDK 进行上传文件、下载文件操作之前需要先初始化 Config 对象。

使用 API 密钥初始化

发往 QingStor 对象存储的请求需要使用 Access Key 和 Secret Key 对请求签名,请前往 青云控制台 Console 创建和下载。下载到的密钥文件格式如下,请妥善保存你的密钥:

access_key_id: 'ACCESS_KEY_ID_EXAMPLE'
secret_access_key: 'SECRET_ACCESS_KEY_EXAMPLE'

初始化 Config 对象示例代码,请将 ACCESS_KEY_ID_EXAMPLESECRET_ACCESS_KEY_EXAMPLE 替换密钥中的对应内容:

import { Config } from 'qingstor-sdk';

const config = new Config({
  access_key_id: 'ACCESS_KEY_ID_EXAMPLE',
  secret_access_key: 'SECRET_ACCESS_KEY_EXAMPLE',
});

服务端签名

当在浏览器或者小程序等客户端中使用 SDK 时,不适合使用 API 密钥初始化 Config 对象,因为这样会对外暴露你的 Secret Key,存在很大的安全问题,因此我们推荐你使用服务端签名的方式来初始化 Config 对象。

import { Config } from 'qingstor-sdk';

const config = new Config({
  signature_server: 'https://your.signserver.com/some_path',
});

SDK 在每次向对象存储发请求前都会向上面指定签名服务器地址发送请求,用来获得对象存储的请求签名。

在私有云中使用 SDK

SDK 默认会将请求会发往对象存储的公有云服务地址 qingstor.com,如果你在私有云中使用 SDK,可以在初始化 Config 对象时指定服务地址。

示例代码:

import { Config } from 'qingstor-sdk';

const config = new Config({
  access_key_id: 'ACCESS_KEY_ID_EXAMPLE',
  secret_access_key: 'SECRET_ACCESS_KEY_EXAMPLE',

  // 对象存储服务的域名、端口号和协议
  host: 'store.private.cloud.com',
  port: 443,
  protocol: 'https',
});

其他配置

{
  // 设置 SDK 输出日志的级别,默认为警告
  // Valid levels are "debug", "info", "warn", "error", and "fatal"
  log_level: 'warn',

  // 请求对象存储时,请求 header 中的 User-Agent 字段
  // 此设置只在 Node 环境中有效
  additional_user_agent: 'your_ua_string',

  // SDK 使用 axios 作为 HTTP Client,在向对象存储发请求前可以对 axios 做一些额外的配置
  // 例如可以指定 responseType、onUploadProgress/onDownloadProgress 事件回调等
  // axios 具体支持的配置请参考: https://github.com/axios/axios#request-config
  getAxiosConfig: function(operation) {
    return {
      responseType: 'stream',
    }
  },
}
Clone this wiki locally