接口文档

最近更新时间:2019-04-18 15:55:18

本文针对 JavaScript SDK 接口做详细的介绍。

JavaScript SDK github 地址:cos-js-sdk-v5

下文中在代码里出现的 COS 代表 SDK 的 类名,cos 代表 SDK 的实例。

下文中出现的 SecretId、SecretKey、Bucket、Region 等名称的含义和获取方式请参考:COS 术语信息

下文中参数名称前的-代表"子参数"。

构造函数

new COS({})

直接 script 标签引用 SDK 时,SDK 占用了全局变量名 COS,通过它的构造函数可以创建 SDK 实例。

使用示例

创建一个 COS SDK 实例,COS SDK 支持以下几种格式创建:

  • 格式一(推荐):后端通过获取临时密钥给到前端,前端计算签名。

    var cos = new COS({
      // 必选参数
      getAuthorization: function (options, callback) {
          // 服务端 JS 和 PHP 例子:https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/
          // 服务端其他语言参考 COS STS SDK :https://github.com/tencentyun/qcloud-cos-sts-sdk
          // STS 详细文档指引看:https://cloud.tencent.com/document/product/436/14048
          $.get('http://example.com/server/sts.php', {
              bucket: options.Bucket,
              region: options.Region,
          }, function (data) {
              callback({
                  TmpSecretId: data.TmpSecretId,
                  TmpSecretKey: data.TmpSecretKey,
                  XCosSecurityToken: data.XCosSecurityToken,
                  ExpiredTime: data.ExpiredTime, // SDK 在 ExpiredTime 时间前,不会再次调用 getAuthorization
              });
          });
      }
    });
  • 格式二(推荐):细粒度控制权限,后端通过获取临时密钥给到前端,前端只有相同请求才重复使用临时密钥,后端可以通过 Scope 细粒度控制权限。

    var cos = new COS({
      // 必选参数
      getAuthorization: function (options, callback) {
          // 服务端例子:https://github.com/tencentyun/qcloud-cos-sts-sdk/edit/master/scope.md
          $.ajax({
              method: 'POST',
              url: 'http://example.com/sts-scope.php',
              data: JSON.stringify(options.Scope),
              beforeSend: function () {
                  xhr.setRequestHeader('Content-Type', 'application/json');
              },
              dataType: 'json',
              success: function (data) {
                  var credentials = data.credentials;
                  callback({
                      TmpSecretId: credentials.tmpSecretId,
                      TmpSecretKey: credentials.tmpSecretKey,
                      XCosSecurityToken: credentials.sessionToken, // 需要提供把 sessionToken 传给 
                      ExpiredTime: data.expiredTime,
                      ScopeLimit: true, // 细粒度控制权限需要设为 true,会限制密钥只在相同请求时重复使用
                  });
              }
          });
      }
    });
  • 格式三(不推荐):前端每次请求前都需要通过 getAuthorization 获取签名,后端使用固定密钥或临时密钥计算签名返回给前端。该格式分片上传权限不好控制,不推荐您使用此格式。

    var cos = new COS({
      // 必选参数
      getAuthorization: function (options, callback) {
          // 服务端获取签名,请参考对应语言的 COS SDK:https://cloud.tencent.com/document/product/436/6474
          // 注意:这种有安全风险,后端需要通过 method、pathname 严格控制好权限,比如不允许 put / 等
          $.get('http://example.com/server/auth.php', {
              method: options.Method,
              pathname: '/' + options.Key,
          }, function (data) {
              callback({
                  Authorization: data.authorization,
                  // XCosSecurityToken: data.sessionToken, // 如果使用临时密钥,需要把 sessionToken 传给 XCosSecurityToken
              });
          });
      },
      // 可选参数
      FileParallelLimit: 3,    // 控制文件上传并发数
      ChunkParallelLimit: 3,   // 控制单个文件下分片上传并发数
      ProgressInterval: 1000,  // 控制上传的 onProgress 回调的间隔
    });
  • 格式四(不推荐):前端使用固定密钥计算签名,该格式适用于前端调试,若使用此格式,请避免泄露密钥。

    var cos = new COS({
      SecretId: 'AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      SecretKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    });

构造函数参数说明

参数名 参数描述 类型 必填
SecretId 用户的 SecretId String
SecretKey 用户的 SecretKey,建议只在前端调试时使用,避免暴露密钥 String
FileParallelLimit 同一个实例下上传的文件并发数,默认值3 Number
ChunkParallelLimit 同一个上传文件的分片并发数,默认值3 Number
ChunkSize 分片上传时,每片的大小字节数,默认值1048576 (1MB) Number
ProgressInterval 上传进度的回调方法 onProgress 的回调频率,单位 ms ,默认值1000 Number
Protocol 自定义的请求协议,可选项 https:http:,默认判断当前页面是 http: 时使用 http:,否则使用 https: String
getAthorization 获取签名的回调方法,如果没有 SecretId、SecretKey 时,这个参数必选 Function

getAuthorization 回调函数说明的函数说明(使用格式一)

getAuthorization: function(options, callback) { ... }

getAuthorization 的回调参数说明:

参数名 参数描述 类型
options 获取临时密钥需要的参数对象 Function
- Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
- Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
callback 临时密钥获取完成后的回传方法 Function

获取完临时密钥后,callback 回传一个对象,回传对象的属性列表如下:

属性名 参数描述 类型 必填
TmpSecretId 获取回来的临时密钥的 tmpSecretId String
TmpSecretKey 获取回来的临时密钥的 tmpSecretKey String
XCosSecurityToken 获取回来的临时密钥的 sessionToken,对应 header 的 x-cos-security-token 字段 String
ExpiredTime 获取回来的临时密钥的 expiredTime,超时时间 String

getAuthorization 回调函数说明(使用格式二)

getAuthorization: function(options, callback) { ... }

getAuthorization 的函数说明回调参数说明:

参数名 参数描述 类型 必填
options 获取签名需要的参数对象 Function
- Method 当前请求的 Method Function
- Key 对象键(Object 的名称),对象在存储桶中的唯一标识,了解更多可参阅 对象键说明 String
- Query 当前请求的 query 参数对象,{key: 'val'} 的格式 Object
- Headers 当前请求的 header 参数对象,{key: 'val'} 的格式 Function
callback 临时密钥获取完成后的回调 Function

getAuthorization 计算完成后,callback 回传一个签名字符串或一个对象:
回传签名字符串时,回传字符串类型,是请求要用的鉴权 Header 凭证字段 Authorization。
回传对象时,回传对象属性列表如下:

属性名 参数描述 类型 必填
Authorization 获取回来的临时密钥的 String
XCosSecurityToken 获取回来的临时密钥的 sessionToken,对应 header 的 x-cos-security-token 字段 String

获取鉴权凭证

实例本身鉴权凭证可以通过实例化时传入的参数控制如何或获取,有三种获取方式:

  1. 实例化时,传入 SecretId、SecretKey,每次需要签名都由实例内部计算。
  2. 实例化时,传入 getAuthorization 回调,每次需要签名通过这个回调计算完返回签名给实例。
  3. 实例化时,传入 getSTS 回调,每次需要临时密钥通过这个回调回去完返回给实例,在每次请求时实例内部使用临时密钥计算得到签名。

静态方法

COS.getAuthorization

COS XML API 的请求里,私有资源操作都需要鉴权凭证 Authorization,用于判断当前请求是否合法。

鉴权凭证使用方式有两种:

  1. 放在 header 参数里使用,字段名:authorization
  2. 放在 url 参数里使用,字段名:sign

COS.getAuthorization 方法用于计算鉴权凭证(Authorization),用以验证请求合法性的签名信息。

注意:

该方法推荐只在前端调试时使用,项目上线不推荐使用前端计算签名的方法,有暴露密钥的风险。

使用示例

获取文件下载的鉴权凭证:

var Authorization = COS.getAuthorization({
    SecretId: 'AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    SecretKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    Method: 'get',
    Key: 'a.jpg',
    Expires: 60,
    Query: {},
    Headers: {}
});

参数说明

参数名 参数描述 类型 必填
SecretId 用户的 SecretId String
SecretKey 用户的 SecretKey String
Method 操作方法,如 get,post,delete, head 等 HTTP 方法 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,如果请求操作是对文件的,则为文件名,且为必须参数。如果操作是对于 Bucket,则为空 String
Expires 签名超时秒数,默认900秒 Number
Query 请求的 query 参数对象 Object
Headers 请求的 header 参数对象 Object

返回值说明

返回值是计算得到的鉴权凭证字符串 authorization。

工具方法

Get Object Url

使用示例

示例一:获取不带签名 Object Url。

var url = cos.getObjectUrl({
    Key: '1.jpg',
    Sign: false
});

示例二:获取带签名 Object Url。

var url = cos.getObjectUrl({
    Key: '1.jpg'
});

示例三:如果签名过程是异步获取,需要通过 callback 获取带签名 Url。

cos.getObjectUrl({
    Key: '1.jpg',
    Sign: false
}, function (err, data) {
    console.log(err || data.Url);
});

示例四:获取预签名 Put Object 上传 Url。

cos.getObjectUrl({
    Method: 'PUT',
    Key: '1.jpg',
    Sign: true
}, function (err, data) {
    console.log(err || data.Url);
});

示例五:获取文件 Url 并下载文件。

cos.getObjectUrl({
    Key: '1.jpg',
    Sign: true
}, function (err, data) {
    if (!err) {
        var downloadUrl = data.Url + (data.Url.indexOf('?') > -1 ? '&' : '?') + 'response-content-disposition=attachment'; // 补充强制下载的参数
        window.open(downloadUrl); // 这里是新窗口打开 url,如果需要在当前窗口打开,可以使用隐藏的 iframe 下载,或使用 a 标签 download 属性协助下载
    }
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,如果请求操作是对文件的,则为文件名,且为必须参数。如果操作是对于 Bucket,则为空 String
Sign 是否返回带有签名的 Url Boolean
Method 操作方法,如 get,post,delete, head 等 HTTP 方法,默认 get String
Query 参与签名计算的 query 参数对象 Object
Headers 参与签名计算的 header 参数对象 Object

返回值说明

返回值是一个字符串,两种情况:

  1. 如果签名计算可以同步计算(如:实例化传入了 SecretId 和 SecretKey),则默认返回带签名的 url。
  2. 否则返回不带签名的 url。

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- Url 计算得到的 Url String

浏览器下载文件

浏览器下载文件需要先通过 cos.getObjectUrl 获取 url 之后再自行调用下载,以下几个下载例子可供参考。

浏览器下载过程实际上是浏览器直接发起的 Get Object 请求,具体参数可以参考 cos.getObject 方法。

使用示例

示例一:获取文件 url 并下载文件。

cos.getObjectUrl({
    Key: '1.jpg',
    Sign: true
}, function (err, data) {
    if (!err) {
        var downloadUrl = data.Url + (data.Url.indexOf('?') > -1 ? '&' : '?') + 'response-content-disposition=attachment'; // 补充强制下载的参数
        window.open(downloadUrl); // 这里是新窗口打开 url,如果需要在当前窗口打开,可以使用隐藏的 iframe 下载,或使用 a 标签 download 属性协助下载
    }
});

示例二:通过隐藏 iframe 下载。

<iframe id="downloadTarget" style="width:0;height:0;" frameborder="0"></iframe>
<a id="downloadLink" href="javascript:void(0)">下载</a>
<script>
document.getElementById('downloadLink').onclick = function () {
    document.getElementById('downloadTarget').src = downloadUrl; // 示例一里获取的下载 url
};
</script>

示例三:通过隐藏 a 标签的 download 属性。

注意:

download 属性不兼容低版本浏览器。

<iframe id="downloadTarget" style="width:0;height:0;" frameborder="0"></iframe>
<!-- 把示例一里的 downloadUrl 放在以下 a 标签的 href 参数里 -->
<a id="downloadLink" href="{downloadUrl}" download="1.jpg">下载</a>

Bucket 操作

Head Bucket

Head Bucket 请求可以确认该 Bucket 是否存在,是否有权限访问。Head 的权限与 Read 一致。当该 Bucket 存在时,返回 HTTP 状态码200;当该 Bucket 无访问权限时,返回 HTTP 状态码403;当该 Bucket 不存在时,返回 HTTP 状态码404。了解更多请参阅 Head Bucket 接口说明

使用示例

cos.headBucket({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket

Get Bucket 请求等同于 List Object 请求,可以列出该 Bucket 下的部分或者全部 Object。此 API 调用者需要对 Bucket 有 Read 权限。了解更多参阅 Get Bucket 接口说明

使用示例

示例一:列出目录 a 的所有文件。

cos.getBucket({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
    Prefix: 'a/',           /* 非必须 */
}, function(err, data) {
    console.log(err || data.Contents);
});

返回值格式:

{
    "Name": "examplebucket-1250000000",
    "Prefix": "",
    "Marker": "a/",
    "MaxKeys": "1000",
    "Delimiter": "",
    "IsTruncated": "false",
    "Contents": [{
        "Key": "a/3mb.zip",
        "LastModified": "2018-10-18T07:08:03.000Z",
        "ETag": "\"05a9a30179f3db7b63136f30aa6aacae-3\"",
        "Size": "3145728",
        "Owner": {
            "ID": "1250000000",
            "DisplayName": "1250000000"
        },
        "StorageClass": "STANDARD"
    }],
    "statusCode": 200,
    "headers": {}
}

示例二:列出目录 a 的文件,不深度遍历。

cos.getBucket({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Prefix: 'a/',              /* 非必须 */
    Delimiter: '/',            /* 非必须 */
}, function(err, data) {
    console.log(err || data.CommonPrefix);
});

返回值格式:

{
    "Name": "examplebucket-1250000000",
    "Prefix": "a/",
    "Marker": "",
    "MaxKeys": "1000",
    "Delimiter": "/",
    "IsTruncated": "false",
    "CommonPrefixes": [{
        "Prefix": "a/1/"
    }],
    "Contents": [{
        "Key": "a/3mb.zip",
        "LastModified": "2018-10-18T07:08:03.000Z",
        "ETag": "\"05a9a30179f3db7b63136f30aa6aacae-3\"",
        "Size": "3145728",
        "Owner": {
            "ID": "1250000000",
            "DisplayName": "1250000000"
        },
        "StorageClass": "STANDARD"
    }],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Prefix 前缀匹配,用来规定返回的文件前缀地址 String
Delimiter 定界符为一个分隔符号,一般是传 "/",如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始 String
Marker 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 String
MaxKeys 单次返回最大的条目数量,默认1000 String
EncodingType 规定返回值的编码方式,可选值:url String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- headers 请求返回的头部信息 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- CommonPrefixes 将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix ObjectArray
- - Prefix 单条 Common 的前缀 String
- - Name 说明 Bucket 的信息 String
- Prefix 前缀匹配,用来规定返回的文件前缀地址 String
- Marker 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 String
- MaxKeys 单次响应请求内返回结果的最大的条目数量 String
- IsTruncated 响应请求条目是否被截断,字符串,'true' 或者 'false' String
- NextMarker 假如返回条目被截断,则返回NextMarker就是下一个条目的起点 String
- Encoding-Type 返回值的编码方式,作用于Delimiter,Marker,Prefix,NextMarker,Key String
- Contents 元数据信息 ObjectArray
- - ETag 文件的 MD-5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String
- - Size 说明文件大小,单位是 Byte String
- - Key Object名称 String
- - LastModified 说明 Object 最后被修改时间,如2017-06-23T12:33:27.000Z String
- - Owner Bucket 持有者信息 Object
- ID Bucket 的 AppID String
- StorageClass Object 的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE String

List Object Versions

List Object Versions 接口可以列出该 Bucket 下的部分或者全部 Object 的 Version。此 API 调用者需要对 Bucket 有 Read 权限。

使用示例

示例一:列出目录 a 的所有文件的版本。

cos.listObjectVersions({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
    Prefix: 'a/',           /* 非必须 */
}, function(err, data) {
    console.log(err || data.Contents);
});

返回值格式:

{
    "Name": "examplebucket-1250000000",
    "Prefix": "",
    "KeyMarker": "",
    "VersionIdMarker": "",
    "MaxKeys": "1000",
    "IsTruncated": "false",
    "DeleteMarkers": [{
        "Key": "0001.txt",
        "VersionId": "MTg0NDY3NDI1MzM4MzI5OTg5MjM",
        "IsLatest": "false",
        "LastModified": "2018-10-18T15:29:12.000Z",
        "Owner": {"UID": "1250000000"}
    }],
    "Versions": [{
        "Key": "0001.txt",
        "VersionId": "MTg0NDY3NDI1MzM4MzI5OTI2NzU",
        "IsLatest": "true",
        "LastModified": "2018-10-18T15:29:18.000Z",
        "ETag": "\"5a8dd3ad0756a93ded72b823b19dd877\"",
        "Size": "6",
        "StorageClass": "STANDARD",
        "Owner": {"UID": "1250000000"}
    }, {
        "Key": "0001.txt",
        "VersionId": "MTg0NDY3NDI1MzM4MzMwMTk3NzQ",
        "IsLatest": "false",
        "LastModified": "2018-10-18T15:28:51.000Z",
        "ETag": "\"5a8dd3ad0756a93ded72b823b19dd877\"",
        "Size": "6",
        "StorageClass": "STANDARD",
        "Owner": {"UID": "1250000000"}
    }],
    "statusCode": 200,
    "headers": {}
}

示例二:列出目录 a 的文件,不深度遍历。

cos.listObjectVersions({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Prefix: '',              /* 非必须 */
    Delimiter: '/',            /* 非必须 */
}, function(err, data) {
    if (err) {
        console.log(err);
    } else {
        console.log(data.CommonPrefix);
        console.log(data.Conents);
    }
});

返回值格式:

{
    "Name": "examplebucket-1250000000",
    "Prefix": "1mb.zip",
    "KeyMarker": "",
    "VersionIdMarker": "",
    "MaxKeys": "1000",
    "IsTruncated": "false",
    "DeleteMarkers": [{
        "Key": "1mb.zip",
        "VersionId": "MTg0NDY3NDI1MzM4NzM3NTU1NDE",
        "IsLatest": "true",
        "LastModified": "2018-10-18T04:09:56.000Z",
        "Owner": {"UID": "1250000000"}
    }],
    "Versions": [{
        "Key": "1mb.zip",
        "VersionId": "MTg0NDY3NDI1MzM5Mjg1ODk4OTI",
        "IsLatest": "false",
        "LastModified": "2018-10-17T12:56:01.000Z",
        "ETag": "\"b6d81b360a5672d80c27430f39153e2c\"",
        "Size": "1048576",
        "StorageClass": "STANDARD",
        "Owner": {"UID": "1250000000"}
    }],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Prefix 前缀匹配,用来规定返回的文件前缀地址 String
Delimiter 定界符为一个分隔符号,一般是传 "/",如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始 String
KeyMarker 默认以 UTF-8 二进制顺序列出条目,所有列出 Object 条目从 KeyMarker 开始 String
VersionIdMarker 默认以 UTF-8 二进制顺序列出条目,所有列出 VersionId 条目从 VersionIdMarker 开始 String
MaxKeys 单次返回最大的条目数量,默认1000 String
EncodingType 规定返回值的编码方式,可选值:url String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- headers 请求返回的头部信息 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- CommonPrefixes 将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix ObjectArray
- - Prefix 单条 Common 的前缀 String
- - Name 说明 Bucket 的信息 String
- Prefix 前缀匹配,用来规定返回的文件前缀地址 String
- KeyMarker 默认以 UTF-8 二进制顺序列出条目,所有列出 Object 条目从 KeyMarker 开始 String
- VersionIdMarker 默认以 UTF-8 二进制顺序列出条目,所有列出 VersionId 条目从 VersionIdMarker 开始 String
- MaxKeys 单次响应请求内返回结果的最大的条目数量 String
- IsTruncated 响应请求条目是否被截断,字符串,'true' 或者 'false' String
- NextMarker 假如返回条目被截断,则返回NextMarker就是下一个条目的起点 String
- Encoding-Type 返回值的编码方式,作用于Delimiter,Marker,Prefix,NextMarker,Key String
- DeleteMarkers 如果存储桶开启了多版本,删除操作默认会新增一个 DeleteMarker 标记 ObjectArray
- - ETag 文件的 MD-5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String
- - Size 说明文件大小,单位是 Byte String
- - Key Object名称 String
- - IsLatest 是否最新版本,枚举值:"true"、"false" String
- - LastModified 说明 Object 最后被修改时间,如2017-06-23T12:33:27.000Z String
- - Owner Bucket 持有者信息 Object
- - - ID Bucket 的 AppID String
- Versions 元数据信息 ObjectArray
- - ETag 文件的 MD-5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String
- - Size 说明文件大小,单位是 Byte String
- - Key Object名称 String
- - IsLatest 是否最新版本,枚举值:"true"、"false" String
- - LastModified 说明 Object 最后被修改时间,如2017-06-23T12:33:27.000Z String
- - StorageClass Object 的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE String
- - Owner Bucket 持有者信息 Object
- - - ID Bucket 的 AppID String

Delete Bucket

Delete Bucket 接口请求可以在指定账号下删除 Bucket,删除之前要求 Bucket 内的内容为空,只有删除了 Bucket 内的信息,才能删除 Bucket 本身。注意,如果删除成功,则返回的 HTTP 状态码为200或204。了解更多请参阅 Delete Bucket 接口说明

使用示例

cos.deleteBucket({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou'     /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket ACL

Get Bucket ACL 接口用来获取 Bucket 的 ACL(access control list), 即存储桶(Bucket)的访问权限控制列表。 此 API 接口只有 Bucket 的持有者有权限操作。了解更多请参阅 Get Bucket ACL 接口说明

使用示例

cos.getBucketAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou'     /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "GrantFullControl": "",
    "GrantWrite": "",
    "GrantRead": "",
    "GrantReadAcp": "id=\"qcs::cam::uin/100000000011:uin/100000000011\"",
    "GrantWriteAcp": "id=\"qcs::cam::uin/100000000011:uin/100000000011\"",
    "ACL": "private",
    "Owner": {
        "ID": "qcs::cam::uin/100000000001:uin/100000000001",
        "DisplayName": "qcs::cam::uin/100000000001:uin/100000000001"
    },
    "Grants": [{
        "Grantee": {
            "ID": "qcs::cam::uin/100000000011:uin/100000000011",
            "DisplayName": "qcs::cam::uin/100000000011:uin/100000000011"
        },
        "Permission": "READ"
    }],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。处理措施参考 错误码文档。如果请求成功则为空。 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- ACL Bucket 持有者信息 Object
- GrantRead 赋予被授权者读的权限 String
- GrantWrite 赋予被授权者写的权限 String
- GrantReadAcp 赋予被授权者读取Acl和Policy的权限 String
- GrantWriteAcp 赋予被授权者写Acl和Policy的权限 String
- GrantFullControl 赋予被授权者读写权限 String
- Owner Bucket 持有者信息 Object
- - DisplayName Bucket 持有者的名称 String
- - ID Bucket 持有者 ID,
格式:qcs::cam::uin/<OwnerUin>:uin/<SubUin>
如果是根帐号,<OwnerUin> 和 <SubUin> 是同一个值
String
- Grants 被授权者信息与权限信息列表 ObjectArray
- - Permission 指明授予被授权者的权限信息,枚举值:READ、WRITE、READ_ACP、WRITE_ACP、FULL_CONTROL String
- - Grantee 说明被授权者的信息。type 类型可以为 RootAccount, Subaccount;
当 type 类型为 RootAccount 时,ID 中指定的是根帐号;
当 type 类型为 Subaccount 时,ID 中指定的是子帐号
Object
- - - DisplayName 用户的名称 String
- - - ID 用户的 ID,
如果是根帐号,格式为:qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>
或 qcs::cam::anyone:anyone (指代所有用户)
如果是子帐号,格式为: qcs::cam::uin/<OwnerUin>:uin/<SubUin>
String

Put Bucket ACL

Put Bucket ACL 接口用来写入 Bucket 的 ACL 表,您可以通过 Header:"x-cos-acl","x-cos-grant-read","x-cos-grant-write","x-cos-grant-full-control" 传入 ACL 信息,或者通过 Body 以 XML 格式传入 ACL 信息。了解更多请参阅 Put Bucket ACL 接口说明

使用示例

设置 Bucket 公有读:

cos.putBucketAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    ACL: 'public-read'
}, function(err, data) {
    console.log(err || data);
});

为某个用户赋予 Bucket 读写权限:

cos.putBucketAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    GrantFullControl: 'id="qcs::cam::uin/100000000001:uin/100000000001",id="qcs::cam::uin/100000000011:uin/100000000011"' // 100000000001是 uin
}, function(err, data) {
    console.log(err || data);
});

为某个用户赋予 Bucket 读写权限:

cos.putBucketAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    GrantFullControl: 'id="qcs::cam::uin/100000000001:uin/100000000001",id="qcs::cam::uin/100000000011:uin/100000000011"' // 100000000001是 uin
}, function(err, data) {
    console.log(err || data);
});

通过 AccessControlPolicy 修改 Bucket 权限:

cos.putBucketAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    AccessControlPolicy: {
        "Owner": { // AccessControlPolicy 里必须有 owner
            "ID": 'qcs::cam::uin/100000000001:uin/100000000001' // 100000000001 是 Bucket 所属用户的 QQ 号
        },
        "Grants": [{
            "Grantee": {
                "ID": "qcs::cam::uin/100000000011:uin/100000000011", // 100000000011 是 QQ 号
            },
            "Permission": "WRITE"
        }]
    }
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
ACL 定义 Object 的 ACL 属性。有效值:private、public-read;默认值:private String
GrantRead 赋予被授权者读的权限。格式:id=" ",id=" ";
当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
当需要给主账号授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>",
例如:'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"'
String
GrantWrite 赋予被授权者写的权限。格式:id=" ",id=" ";
当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
当需要给主账号授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>",
例如:'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"'
String
GrantReadAcp 赋予被授权者读取Acl和Policy的权限。格式:id=" ",id=" ";
当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
当需要给主账号授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>",
例如:'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"'
String
GrantWriteAcp 赋予被授权者写Acl和Policy的权限。格式:id=" ",id=" ";
当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
当需要给主账号授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>",
例如:'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"'
String
GrantFullControl 赋予被授权者读写权限。格式:id=" ",id=" ";
当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
当需要给主账号授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>",
例如:'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"'
String
AccessControlPolicy 说明跨域资源共享配置的所有信息列表 Object
- Owner 代表存储桶所有者的对象 Object
- - ID 代表用户 ID 的字符串,格式如 qcs::cam::uin/100000000001:uin/100000000001,100000000001是 uin Object
- Grants 说明跨域资源共享配置的所有信息列表 Object
- - Permission 说明跨域资源共享配置的所有信息列表,可选项 READ、WRITE、READ_ACP、WRITE_ACP、FULL_CONTROL String
- - Grantee 说明跨域资源共享配置的所有信息列表 ObjectArray
- - - ID 代表用户 ID 的字符串,格式如 qcs::cam::uin/100000000001:uin/100000000001,100000000001是 uin String
- - - DisplayName 代表用户名称的字符串,一般填写成和 ID 一致的字符串 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功,则为空,错误码文档 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket CORS

Get Bucket CORS 接口实现 Bucket 持有者在 Bucket 上进行跨域资源共享的信息配置。(CORS 是一个 W3C 标准,全称是"跨域资源共享"(Cross-origin Resource Sharing))。默认情况下,Bucket 的持有者直接有权限使用该 API 接口,Bucket 持有者也可以将权限授予其他用户。了解更多请参阅 Get Bucket CORS 接口说明

使用示例

cos.getBucketCors({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "CORSRules": [{
        "MaxAgeSeconds": "5",
        "AllowedOrigins": ["*"],
        "AllowedHeaders": ["*"],
        "AllowedMethods": ["GET", "POST", "PUT", "DELETE", "HEAD"],
        "ExposeHeaders": ["ETag", "Content-Length", "x-cos-acl", "x-cos-version-id", "x-cos-request-id", "x-cos-delete-marker", "x-cos-server-side-encryption"]
    }],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功,则为空,错误码文档 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- CORSRules 说明跨域资源共享配置的所有信息列表 ObjectArray
- - AllowedMethods 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE StringArray
- - AllowedOrigins 允许的访问来源,支持通配符 * 格式为:协议://域名[:端口]如:http://www.qq.com StringArray
- - AllowedHeaders 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * StringArray
- - ExposeHeaders 设置浏览器可以接收到的来自服务器端的自定义头部信息 StringArray
- - MaxAgeSeconds 设置 OPTIONS 跨域信息缓存秒数 String
- - ID 配置规则的 ID String

Put Bucket CORS

注意:

  1. 如果要在前端修改跨域访问配置,需要该 Bucket 本身支持跨域,您可以在控制台进行跨域访问配置,详情见 开发环境
  2. 在修改跨域访问配置时,请注意不要影响到当前的 Origin 下的跨域请求。

Put Bucket CORS 接口用来请求设置 Bucket 的跨域资源共享权限,您可以通过传入 XML 格式的配置文件来实现配置,文件大小限制为64KB。默认情况下,Bucket 的持有者直接有权限使用该 API 接口,Bucket 持有者也可以将权限授予其他用户。了解更多请参阅 Put Bucket CORS 接口说明

使用示例

cos.putBucketCors({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    CORSRules: [{
        "AllowedOrigin": ["*"],
        "AllowedMethod": ["GET", "POST", "PUT", "DELETE", "HEAD"],
        "AllowedHeader": ["*"],
        "ExposeHeader": ["ETag", "x-cos-acl", "x-cos-version-id", "x-cos-delete-marker", "x-cos-server-side-encryption"],
        "MaxAgeSeconds": "5"
    }]
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
CORSRules 说明跨域资源共享配置的所有信息列表 ObjectArray
- ID 配置规则的 ID,可选填 String
- AllowedMethods 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE StringArray
- AllowedOrigins 允许的访问来源,支持通配符 * 格式为:协议://域名[:端口]如:http://www.qq.com StringArray
- AllowedHeaders 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * StringArray
- ExposeHeaders 设置浏览器可以接收到的来自服务器端的自定义头部信息 StringArray
- MaxAgeSeconds 设置 OPTIONS 请求得到结果的有效期 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功,则为空,错误码文档 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Delete Bucket CORS

注意:

  1. 删除当前 Bucke t 的跨域访问配置信息,会导致所有请求跨域失败,请谨慎操作。
  2. 不推荐在浏览器端使用该方法。

Delete Bucket CORS 接口请求实现删除跨域访问配置信息。了解更多请参阅 Delete Bucket CORS 接口说明

使用示例

cos.deleteBucketCors({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。 如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket Location

Get Bucket Location 接口用于获取 Bucket 所在的地域信息,该 GET 操作使用 location 子资源返回 Bucket 所在的区域,只有 Bucket 持有者才有该 API 接口的操作权限。了解更多请参阅 Get Bucket Location 接口说明

使用示例

cos.getBucketLocation({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请查看考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- LocationConstraint Bucket 所在区域。枚举值请见:Bucket 地域信息 String

Get Bucket Tagging

Get Bucket Tagging 接口实现获取存储桶的 Tagging 标签信息。了解更多请参阅 Get Bucket Tagging 接口说明

使用示例

cos.getBucketTagging({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "Tags": [
        {"Key": "k1", "Value": "v1"},
        {"Key": "k2", "Value": "v2"}
    ],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- Tags 标签信息 ObjectArray
- - Key 标签名 String
- - Value 标签值 String

Put Bucket Tagging

Put Bucket Tagging 接口实现设置存储桶的 Tagging 标签信息。了解更多请参阅 Put Bucket Tagging 接口说明

使用示例

cos.putBucketTagging({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Tagging: {
        "Tags": [
            {"Key": "k1", "Value": "v1"},
            {"Key": "k2", "Value": "v2"}
        ]
    }
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Tagging 标签信息 Object
- Tags 标签信息 ObjectArray
- - Key 标签名 String
- - Value 标签值 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Delete Bucket Tagging

Delete Bucket Tagging 接口实现删除存储桶的 Tagging 标签信息。了解更多请参阅 Delete Bucket Tagging 接口说明

使用示例

cos.deleteBucketTagging({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket Policy

Get Bucket Policy 接口实现获取 Bucket 权限策略规则。了解更多请参阅 Get Bucket Policy 接口说明

使用示例

cos.getBucketPolicy({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "Policy": {
        "version": "2.0",
        "Statement": [{
            "Action": [
                "name/cos:PutObject",
                "name/cos:InitiateMultipartUpload",
                "name/cos:ListMultipartUploads",
                "name/cos:ListParts",
                "name/cos:UploadPart",
                "name/cos:CompleteMultipartUpload"
            ],
            "Effect": "allow",
            "Principal": {
                "qcs": ["qcs::cam::uin/100000000001:uin/100000000001"]
            },
            "Resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],
            "Sid": "costs-1539833197000000307620-46518-39"
        }]
    },
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- Policy 权限策略,参考 访问管理策略语法 Object
- - version 版本号,固定 2.0 ObjectArray
- - statement 权限策略生命列表 ObjectArray
- - - effect 效力,枚举值:allow、deny String
- - - principal 身份信息 ObjectArray
- - - - qcs 身份信息标识字符串,格式:qcs::cam::uin/100000000001:uin/100000000011,其中 100000000001 是主帐号,100000000011 是子帐号 String
- - - action 策略生效的相关 Action 列表,支持通配符 * StringArray
- - - resource 相关的资源标识字符串列表,格式:qcs::cos:&ltRegion>:uid/&ltAppId>:&ltShortBucketName>/*,例如:qcs::cos:ap-guangzhou:uid/1250000000:test/* StringArray
- - - condition 允许或禁用的的资源列表,字符串 ObjectArray

Put Bucket Policy

Put Bucket Policy 接口实现设置 Bucket 权限策略规则。了解更多请参阅 Put Bucket Policy 接口说明

使用示例

cos.putBucketPolicy({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Policy: {
        "version": "2.0",
        "Statement": [{
            "Effect": "allow",
            "Principal": {
                "qcs": ["qcs::cam::uin/100000000001:uin/100000000001"]
            },
            "Action": [
                "name/cos:PutObject",
                "name/cos:InitiateMultipartUpload",
                "name/cos:ListMultipartUploads",
                "name/cos:ListParts",
                "name/cos:UploadPart",
                "name/cos:CompleteMultipartUpload"
            ],
            "Resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],
        }]
    },
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Policy 权限策略,参考 访问管理策略语法 Object
- version 版本号,固定 2.0 ObjectArray
- statement 权限策略生命列表 ObjectArray
- - effect 效力,枚举值:allow、deny String
- - principal 身份信息 ObjectArray
- - - qcs 身份信息标识字符串,格式:qcs::cam::uin/100000000001:uin/100000000011,其中 100000000001 是主帐号,100000000011 是子帐号 String
- - action 策略生效的相关 Action 列表,支持通配符 * StringArray
- - resource 相关的资源标识字符串列表,格式:qcs::cos:&ltRegion>:uid/&ltAppId>:&ltShortBucketName>/*,例如:qcs::cos:ap-guangzhou:uid/1250000000:test/* StringArray
- - condition 允许或禁用的的资源列表,字符串 ObjectArray

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Delete Bucket Policy

Delete Bucket Policy 接口可以删除存储桶的权限策略。了解更多请参阅 Delete Bucket Policy 接口说明

使用示例

cos.deleteBucketPolicy({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket Lifecycle

Get Bucket Lifecycle 接口可以获取存储桶的生命周期规则。了解更多请参阅 Get Bucket Lifecycle 接口说明

使用示例

cos.getBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "Rules": [{
        "ID": "1",
        "Filter": "",
        "Status": "Enabled",
        "Transition": {
            "Days": "30",
            "StorageClass": "STANDARD_IA"
        }
    }, {
        "ID": "2",
        "Filter": {
            "Prefix": "dir/"
        },
        "Status": "Enabled",
        "Transition": {
            "Days": "90",
            "StorageClass": "ARCHIVE"
        }
    }, {
        "ID": "3",
        "Filter": "",
        "Status": "Enabled",
        "Expiration": {
            "Days": "180"
        }
    }, {
        "ID": "4",
        "Filter": "",
        "Status": "Enabled",
        "AbortIncompleteMultipartUpload": {
            "DaysAfterInitiation": "30"
        }
    }],
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- Rules 请求返回的头部信息 ObjectArray
- - ID 规则的唯一标识 ID String
- - Status 规则的开启状态,枚举值:Enabled、Disabled String
- - Filter 指定过滤条件 String
- - - Prefix 规则要匹配上的 Object 前缀 String
- - Transition 表示对 Object 沉降 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object
- - - StorageClass 对 Object 转存的目标存储类型,枚举值:STANDARD、STANDARD_IA,默认值:STANDARD Object
- - Expiration 表示对 Object 删除 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object
- - AbortIncompleteMultipartUpload 表示删除碎片 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object

Put Bucket Lifecycle

Put Bucket Lifecycle 接口 可以设置存储桶的生命周期规则。

使用示例

示例一:上传30天后,沉降至低频存储。

cos.putBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Rules: [{
        "ID": "1",
        "Status": "Enabled",
        "Filter": {},
        "Transition": {
            "Days": "30",
            "StorageClass": "STANDARD_IA"
        }
    }],
}, function(err, data) {
    console.log(err || data);
});

示例二:指定目录前缀dir/,上传90天后,沉降至归档存储。

cos.putBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Rules: [{
        "ID": "2",
        "Filter": {
            "Prefix": "dir/",
        },
        "Status": "Enabled",
        "Transition": {
            "Days": "90",
            "StorageClass": "ARCHIVE"
        }
    }],
}, function(err, data) {
    console.log(err || data);
});

示例三:上传180天后,删除文件。

cos.putBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Rules: [{
        "ID": "3",
        "Status": "Enabled",
        "Filter": {},
        "Expiration": {
            "Days": "180"
        }
    }],
}, function(err, data) {
    console.log(err || data);
});

示例四:上传30天后,删除碎片。

cos.putBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Rules: [{
        "ID": "4",
        "Status": "Enabled",
        "Filter": {},
        "AbortIncompleteMultipartUpload": {
            "DaysAfterInitiation": "30"
        }
    }],
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
LifecycleConfiguration 指定生命周期规则 Object
- Rules 请求返回的头部信息 ObjectArray
- - ID 规则的唯一标识 ID String
- - Status 规则的开启状态,枚举值:Enabled、Disabled String
- - Filter 指定过滤条件 String
- - - Prefix 规则要匹配上的 Object 前缀 String
- - Transition 表示对 Object 沉降 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object
- - - StorageClass 对 Object 转存的目标存储类型,枚举值:STANDARD、STANDARD_IA,默认值:STANDARD Object
- - Expiration 表示对 Object 删除 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object
- - AbortIncompleteMultipartUpload 表示删除碎片 Object
- - - Days 规则生效天数,按文件上传时间开始算,必须为正整数 Object

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Delete Bucket Lifecycle

Delete Bucket Lifecycle 接口 可以删除存储桶的生命周期规则。

使用示例

cos.deleteBucketLifecycle({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket Versioning

Get Bucket Versioning 接口可以获取存储桶的多版本配置。

使用示例

cos.getBucketVersioning({
    Bucket: 'examplebucket-1250000000',  /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
}, function (err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- VersioningConfiguration 存储桶的多版本配置信息 Object
- - Status 多版本是否打开的状态,枚举值:空、Enabled、Suspended String

Put Bucket Versioning

Put Bucket Versioning 接口可以打开和暂停存储桶多版本配置。

使用示例

cos.putBucketVersioning({
    Bucket: 'examplebucket-1250000000',  /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
    VersioningConfiguration: {
        Status: "Enabled"
    }
}, function (err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
VersioningConfiguration 定义存储桶的多版本配置信息 Object
- Status 多版本是否打开的状态,枚举值:Enabled、Suspended,Enabled 表示打开,Suspended 表示暂停 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Get Bucket Replication

Get Bucket Replication 接口实现获取存储桶的跨区域复制规则。

使用示例

cos.getBucketReplication({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

返回示例

{
    "ReplicationConfiguration": {
        "Role": "qcs::cam::uin/100000000001:uin/100000000001",
        "Rules": {
            "ID": "1",
            "Status": "Enabled",
            "Prefix": "sync/",
            "Destination": {
                "Bucket": "qcs:id/0:cos:ap-chengdu:appid/1250000000:backup",
                "StorageClass": "Standard"
            }
        }
    },
    "statusCode": 200,
    "headers": {}
}

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- ReplicationConfiguration 跨区域复制规则 Object
- - Role 复制过程以什么角色的身份,格式:qcs::cam::uin/100000000001:uin/100000000011,其中100000000001是主帐号,100000000011是子帐号 Object
- - Rules 复制具体规则列表 ObjectArray
- - - ID 任务标识 ID String
- - - Status 规则状态,枚举值:Enabled、Disabled String
- - - Prefix 要复制的 Object 前缀 String
- - - Destination 要复制的 Object 前缀 Object
- - - - Bucket 要复制到的存储桶,格式:qcs:id/0:cos:<Region>:appid/<AppId>:<ShortBucketName>,例如:qcs:id/0:cos:ap-guangzhou:appid/1250000000:backup Object
- - - - StorageClass 复制后的存储类型,枚举值:STANDARD、STANDARD_IA,默认值:STANDARD Object

Put Bucket Replication

Put Bucket Replication 接口实现设置存储桶的跨区域复制规则。

使用示例

cos.putBucketReplication({
    Bucket: 'examplebucket-1250000000',  /* 必须 */
    Region: 'ap-guangzhou',     /* 必须 */
    ReplicationConfiguration: { /* 必须 */
        Role: "qcs::cam::uin/100000000001:uin/100000000001",
        Rules: [{
            ID: "1",
            Status: "Enabled",
            Prefix: "sync/",
            Destination: {
                Bucket: "qcs:id/0:cos:ap-chengdu:appid/1250000000:backup",
                StorageClass: "Standard",
            }
        }]
    }
}, function (err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
ReplicationConfiguration 定义跨区域复制规则 Object
- Role 复制过程以什么角色的身份,格式:qcs::cam::uin/100000000001:uin/100000000011,其中100000000001是主帐号,100000000011是子帐号 Object
- Rules 复制具体规则列表 ObjectArray
- - ID 任务标识 ID String
- - Status 规则状态,枚举值:Enabled、Disabled String
- - Prefix 要复制的 Object 前缀 String
- - Destination 要复制的 Object 前缀 Object
- - - Bucket 要复制到的存储桶,格式:qcs:id/0:cos:<Region>:appid/<AppId>:<ShortBucketName>,例如:qcs:id/0:cos:ap-guangzhou:appid/1250000000:backup Object
- - - StorageClass 复制后的存储类型,枚举值:STANDARD、STANDARD_IA,默认值:STANDARD Object

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Delete Bucket Replication

Delete Bucket Replication 接口可以删除存储桶的跨区域复制规则。

使用示例

cos.deleteBucketReplication({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

Object 操作

Head Object

Head Object 接口请求可以获取对应 Object 的 meta 信息数据,Head 的权限与 Get 的权限一致。

使用示例

cos.headObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',               /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
IfModifiedSince 当 Object 在指定时间后被修改,则返回对应 Object 的 meta 信息,否则返回304 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功,则为空,错误码文档 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,304等,如果在指定时间后未被修改,则返回304 Number
- headers 请求返回的头部信息 Object
- x-cos-object-type 用来表示 Object 是否可以被追加上传,枚举值:normal、appendable String
- x-cos-storage-class Object 的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE String
- x-cos-meta- * 用户自定义的 meta String
- NotModified Object 是否在指定时间后未被修改 Boolean

Get Object

Get Object 接口请求可以获取存储桶里指定文件的内容,得到文件内容是字符串格式。

该操作需要请求者对目标 Object 具有读权限或目标 Object 对所有人都开放了读权限(公有读)。

注意:

该接口不适用于下载文件,下载文件可以通过 cos.getObjectUrl 获取 url 再自行打开下载,具体参考上文的 cos.getObjectUrl 接口。

使用示例

cos.getObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
}, function(err, data) {
    console.log(err || data.Body);
});

指定 Range 获取文件内容:

cos.getObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    Range: 'bytes=1-3',        /* 非必须 */
}, function(err, data) {
    console.log(err || data.Body);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
ResponseContentType 设置响应头部中的 Content-Type 参数 String
ResponseContentLanguage 设置返回头部中的 Content-Language 参数 String
ResponseExpires 设置返回头部中的 Content-Expires 参数 String
ResponseCacheControl 设置返回头部中的 Cache-Control 参数 String
ResponseContentDisposition 设置返回头部中的 Content-Disposition 参数 String
ResponseContentEncoding 设置返回头部中的 Content-Encoding 参数 String
Range RFC 2616 中定义的指定文件下载范围,以字节(bytes)为单位,如 Renge: 'bytes=1-3' String
IfModifiedSince 当Object在指定时间后被修改,则返回对应 Object meta 信息,否则返回 304 String
IfUnmodifiedSince 如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed) String
IfMatch 当 ETag 与指定的内容一致,才返回文件。否则返回 412(precondition failed) String
IfNoneMatch 当 ETag 与指定的内容不一致,才返回文件。否则返回 304(not modified) String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,304,403,404等 Number
- headers 请求返回的头部信息 Object
- x-cos-object-type 用来表示 object 是否可以被追加上传,枚举值:normal、appendable String
- x-cos-storage-class Object 的存储级别,枚举值:STANDARD、STANDARD_IA,
注意:如果没有返回该头部,则说明文件存储级别为 STANDARD (标准存储)
String
- x-cos-meta- * 用户自定义的元数据 String
- NotModified 如果请求时带有 IfModifiedSince 则返回该属性,如果文件未被修改,则为 true,否则为 false Boolean
- Body 返回的文件内容,默认为 String 形式 String

Put Object

Put Object 接口请求可以将本地的文件(Object)上传至指定 Bucket 中。该操作需要请求者对 Bucket 有 WRITE 权限。

注意:

  1. Key(文件名)不能以 / 结尾,否则会被识别为文件夹。
  2. 每个主账号(即同一个 APPID),存储桶的 ACL、Policy 和 CAM 关联的策略数量总和最多为 1000 条,对象 ACL 规则数量不限制。如果您不需要进行对象 ACL 控制,请在上传时不要设置,默认继承 Bucket 权限。
  3. 上传之后,您可以用同样的 key 生成预签名链接(下载请指定 method 为 GET,具体接口说明见下文,分享到其他端来进行下载。但注意如果您的文件是私有读权限,那么预签名链接只有一定的有效期。

使用示例

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    StorageClass: 'STANDARD',
    Body: file, // 上传文件对象
    onProgress: function(progressData) {
        console.log(JSON.stringify(progressData));
    }
}, function(err, data) {
    console.log(err || data);
});

上传字符串作为文件内容:

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    Body: 'hello!',
}, function(err, data) {
    console.log(err || data);
});

上传字符串作为文件内容:

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    Body: 'hello!',
}, function(err, data) {
    console.log(err || data);
});

创建目录:

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: 'a/',              /* 必须 */
    Body: '',
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
CacheControl RFC 2616中定义的缓存策略,将作为 Object 元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为 Object 元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为 Object 元数据保存 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
ContentType RFC 2616中定义的内容类型(MIME),将作为 Object 元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
Expires RFC 2616中定义的过期时间,将作为 Object 元数据保存 String
ACL 定义 Object 的 ACL 属性。有效值:private、public-read;默认值:private String
GrantRead 赋予被授权者读的权限,格式:x-cos-grant-read: id="[OwnerUin]" String
GrantFullControl 赋予被授权者所有的权限,格式:x-cos-grant-full-control: id="[OwnerUin]" String
StorageClass 设置 Object 的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD String
x-cos-meta- * 允许用户自定义的头部信息,将作为 Object 元数据返回。大小限制2K String
Body 上传文件的内容,可以为字符串File 对象或者 Blob 对象 String\File\Blob
onProgress 进度的回调函数,进度回调响应对象(progressData)属性如下 Function
- progressData.loaded 已经下载的文件部分大小,以字节(bytes)为单位 Number
- progressData.total 整个文件的大小,以字节(Bytes)为单位 Number
- progressData.speed 文件的下载速度,以字节/秒(Bytes/s)为单位 Number
- progressData.percent 文件下载的百分比,以小数形式呈现,例如:下载50%即为0.5 Number

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- ETag 返回文件的 MD5 算法校验值。ETag 的值可以用于检查 Object 在上传过程中是否有损坏,
注意:这里的 ETag 值字符串前后带有双引号,例如 "09cba091df696af91549de27b8e7d0f6"
String

Delete Object

Delete Object 接口请求可以在 COS 的 Bucket 中将一个文件(Object)删除。该操作需要请求者对 Bucket 有 WRITE 权限。

使用示例

cos.deleteObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg'                            /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,204,403,404等,如果删除成功或者文件不存在则返回204或200,如果找不到指定的 Bucket,则返回404 Number
- headers 请求返回的头部信息 Object

Options Object

Options Object 接口实现 Object 跨域访问配置的预请求。即在发送跨域请求之前会发送一个 OPTIONS 请求并带上特定的来源域,HTTP 方法和 HEADER 信息等给 COS,以决定是否可以发送真正的跨域请求。当 CORS 配置不存在时,请求返回403 Forbidden。
可以通过 Put Bucket CORS 接口来开启 Bucket 的 CORS 支持。

使用示例

cos.optionsObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    Origin: 'https://www.qq.com',      /* 必须 */
    AccessControlRequestMethod: 'PUT', /* 必须 */
    AccessControlRequestHeaders: 'origin,accept,content-type' /* 非必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
Origin 模拟跨域访问的请求来源域名 String
AccessControlRequestMethod 模拟跨域访问的请求 HTTP 方法 String
AccessControlRequestHeaders 模拟跨域访问的请求头部 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- headers 请求返回的头部信息 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- AccessControlAllowOrigin 模拟跨域访问的请求来源域名,中间用逗号间隔,当来源不允许的时候,此 Header 不返回。例如:* String
- AccessControlAllowMethods 模拟跨域访问的请求HTTP方法,中间用逗号间隔,当请求方法不允许的时候,此Header不返回。例如:PUT,GET,POST,DELETE,HEAD String
- AccessControlAllowHeaders 模拟跨域访问的请求头部,中间用逗号间隔,当模拟任何请求头部不允许的时候,此 Header 不返回该请求头部。例如:accept,content-type,origin,authorization String
- AccessControlExposeHeaders 跨域支持返回头部,中间用逗号间隔。例如:ETag String
- AccessControlMaxAge 设置 OPTIONS 请求得到结果的有效期。例如:3600 String
- OptionsForbidden OPTIONS 请求是否被禁止,如果返回的 HTTP 状态码为 403,则为 true Boolean

Get Object ACL

Get Object ACL 接口用来获取某个 Bucket 下的某个 Object 的访问权限。只有 Bucket 的持有者才有权限操作。

使用示例

cos.getObjectAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- ACL Object 的 ACL 属性。枚举值:private、public-read、default Object
- Owner 标识资源的所有者 Object
- - ID Object 持有者 ID,格式为:qcs::cam::uin/:uin/。 如果是主帐号 ID, 是同一个值 String
- - DisplayName Object 持有者的名称 String
- Grants 被授权者信息与权限信息列表 ObjectArray
- - Permission 指明授予被授权者的权限信息,枚举值:READ、READ_ACP、WRITE_ACP、FULL_CONTROL String
- - Grantee 说明被授权者的信息。type 类型可以为 RootAccount、Subaccount;当 type 类型为 RootAccount 时,ID 中指定的是根帐号;当 type 类型为 Subaccount 时,ID 中指定的是子帐号 Object
- - - DisplayName 用户的名称 String
- - - ID 用户的 ID,格式为:qcs::cam::uin/:uin/。 如果是主帐号 ID, 是同一个值 String

Put Object ACL

Put Object ACL 接口用来对某个 Bucket 中的某个的 Object 进行 ACL 表的配置。

注意:

每个主账号(即同一个 APPID),存储桶的 ACL、Policy 和 CAM 关联的策略数量总和最多为 1000 条,对象 ACL 规则数量不限制。如果您不需要进行对象 ACL 控制,请不要设置,默认继承 Bucket 权限。

使用示例

cos.putObjectAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    ACL: 'public-read',        /* 非必须 */
}, function(err, data) {
    console.log(err || data);
});

为某个用户赋予文件读写权限:

cos.putObjectAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    GrantFullControl: 'id="100000000001"' // 100000000001是主账号 uin
}, function(err, data) {
    console.log(err || data);
});

通过 AccessControlPolicy 修改 Bucket 权限:

cos.putObjectAcl({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    AccessControlPolicy: {
        "Owner": { // AccessControlPolicy 里必须有 owner
            "ID": 'qcs::cam::uin/100000000001:uin/100000000001' // 100000000001 是 Bucket 所属用户的 QQ 号
        },
        "Grants": [{
            "Grantee": {
                "ID": "qcs::cam::uin/100000000011:uin/100000000011", // 100000000011 是 QQ 号
            },
            "Permission": "WRITE"
        }]
    }
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
ACL 定义 Object 的 ACL 属性。有效值:private、public-read、default;默认值:private;传 default 时清除文件权限,权限恢复为继承权限 String
GrantRead 赋予被授权者读的权限。格式:id="[OwnerUin]" String
GrantFullControl 赋予被授权者所有的权限。格式:id="[OwnerUin]" String
AccessControlPolicy Object 的 ACL JSON 定义格式 Object
- Owner 标识资源的所有者 Object
- - ID Object 持有者 ID,格式:qcs::cam::uin/<OwnerUin>:uin/lt;SubUin>
如果是根帐号,<OwnerUin> 和<SubUin> 是同一个值
String
- - DisplayName Object 持有者的名称 String
- Grants 被授权者信息与权限信息列表 ObjectArray
- - Permission 指明授予被授权者的权限信息,枚举值:READ、WRITE、READ_ACP、WRITE_ACP、FULL_CONTROL String
- - Grantee 说明被授权者的信息。type 类型可以为 RootAccount、Subaccount;当 type 类型为 RootAccount 时,ID 中指定的是根帐号;当 type 类型为 Subaccount 时,ID 中指定的是子帐号 Object
- - - DisplayName 用户的名称 String
- - - ID 用户的 ID,格式:qcs::cam::uin/<OwnerUin>:uin/lt;SubUin>
如果是根帐号,<OwnerUin> 和<SubUin> 是同一个值
String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,204,403,404等 Number
- headers 请求返回的头部信息 Object

Delete Multiple Object

Delete Multiple Object 接口请求实现在指定 Bucket 中批量删除 Object,单次请求最大支持批量删除1000个 Object。对于响应结果,COS 提供 Verbose 和 Quiet 两种模式:Verbose 模式将返回每个 Object 的删除结果;Quiet 模式只返回报错的 Object 信息。

使用示例

删除多个文件:

cos.deleteMultipleObject({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Objects: [
        {Key: '1.jpg'},
        {Key: '2.zip'},
    ]
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Quiet 布尔值,这个值决定了是否启动 Quiet 模式。值为 true 启动 Quiet 模式,值为 false 则启动 Verbose 模式,默认值为 false Boolean
Objects 要删除的文件列表 ObjectArray
- Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
- VersionId 要删除的 Object 或 DeleteMarker 版本 ID String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,204,403,404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200,204,403,404等 Number
- headers 请求返回的头部信息 Object
- Deleted 说明本次删除的成功 Object 信息 ObjectArray
- - Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
- - VersionId 如果参数传入了 VersionId,返回也会带上 VersionId,表示刚操作的 Object 或 DeleteMarker 版本 String
- - DeleteMarker 如果开启了多版本,并且参数没有 VersionId,本次删除不会真正抹去文件内容,只新增一个 DeleteMarker 代表可见的文件已删除,枚举值:true、false String
- - DeleteMarkerVersionId 当返回的 DeleteMarker 为 true 时,返回刚新增的 DeleteMarker 的 VersionId String
- Error 说明本次删除的失败 Object 信息 ObjectArray
- - Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
- - Code 删除失败的错误码 String
- - Message 删除错误信息 String

Put Object Copy

Put Object Copy 请求实现将一个文件从源路径复制到目标路径。建议文件大小1MB 到5GB,超过5GB 的文件请使用分块上传 Upload - Copy。在拷贝的过程中,文件元属性和 ACL 可以被修改。用户可以通过该接口复制文件、修改文件属性(源文件和目标文件的属性相同)、移动或重命名文件(先复制,再单独调用删除接口)。

使用示例

cos.putObjectCopy({
    Bucket: 'examplebucket-1250000000',                               /* 必须 */
    Region: 'ap-guangzhou',                                  /* 必须 */
    Key: '1.jpg',                                            /* 必须 */
    CopySource: 'test1-1250000000.cos.ap-guangzhou.myqcloud.com/2.jpg', /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
CopySource 源文件 URL 路径,可以通过 versionid 子资源指定历史版本 String
ACL 定义 Object 的 ACL 属性。有效值:private、public-read;默认值:private String
GrantRead 赋予被授权者读的权限。格式:id="[OwnerUin]" String
GrantFullControl 赋予被授权者所有的权限。格式:id="[OwnerUin]" String
MetadataDirective 是否拷贝元数据,枚举值:Copy, Replaced,默认值 Copy。假如标记为 Copy,忽略 Header 中的用户元数据信息直接复制;假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为 Replaced String
CopySourceIfModifiedSince 当 Object 在指定时间后被修改,则执行操作,否则返回412。可与 CopySourceIfNoneMatch 一起使用,与其他条件联合使用返回冲突 String
CopySourceIfUnmodifiedSince 当 Object 在指定时间后未被修改,则执行操作,否则返回412。可与 CopySourceIfMatch 一起使用,与其他条件联合使用返回冲突 String
CopySourceIfMatch 当 Object 的 Etag 和给定一致时,则执行操作,否则返回412。可与CopySourceIfUnmodifiedSince 一起使用,与其他条件联合使用返回冲突 String
CopySourceIfNoneMatch 当 Object 的 Etag 和给定不一致时,则执行操作,否则返回412。可与 CopySourceIfModifiedSince 一起使用,与其他条件联合使用返回冲突 String
StorageClass 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA;默认值:Standard String
x-cos-meta- * 其他自定义的文件头部 String
CacheControl 指定所有缓存机制在整个请求/响应链中必须服从的指令 String
ContentDisposition MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件 String
ContentEncoding HTTP 中用来对「采用何种编码格式传输正文」进行协定的一对头部字段 String
ContentType RFC 2616 中定义的 HTTP 请求内容类型(MIME),例如text/plain String
Expect 请求的特定的服务器行为 String
Expires 响应过期的日期和时间 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- ETag 文件的 MD-5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String
- LastModified 说明 Object 最后被修改时间,如2017-06-23T12:33:27.000Z String

分块上传操作

Initiate Multipart Upload

Initiate Multipart Upload 请求实现初始化分片上传,成功执行此请求以后会返回 Upload ID 用于后续的 Upload Part 请求

使用示例

cos.multipartInit({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存 String
ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存 String
ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存 String
ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存 String
Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存 String
ACL 定义 Object 的 ACL 属性。有效值:private、public-read;默认值:private String
GrantRead 赋予被授权者读的权限,格式:id="[OwnerUin]" String
GrantFullControl 赋予被授权者所有的权限,格式:id="[OwnerUin]" String
StorageClass 设置Object的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD String
x-cos-meta- * 允许用户自定义的头部信息,将作为 Object 元数据返回。大小限制2K String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
Bucket 分片上传的目标 Bucket String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
UploadId 在后续上传中使用的 ID String

Upload Part

Upload Part 接口请求实现在初始化以后的分块上传,支持的块的数量为1到10000,块的大小为1MB 到 5GB。
使用 Initiate Multipart Upload 接口初始化分片上传时会得到一个 uploadId,该 ID 不但唯一标识这一分块数据,也标识了这分块数据在整个文件内的相对位置。在每次请求 Upload Part 时候,需要携带 partNumber 和 uploadId,partNumber 为块的编号,支持乱序上传。
当传入 uploadId 和 partNumber 都相同的时候,后传入的块将覆盖之前传入的块。当 uploadId 不存在时会返回 404 错误,NoSuchUpload。

使用示例

cos.multipartUpload({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',       /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节) String
PartNumber 分块的编号 String
UploadId 上传任务编号 String
Body 上传文件分块的内容,可以为字符串File 对象或者 Blob 对象 String\File\Blob
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
ContentMD5 RFC 1864中定义的经过 Base64 编码的128-bit 内容 MD5 校验值。此头部用来校验文件内容是否发生变化 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- ETag 文件的 MD-5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String

Complete Multipart Upload

Complete Multipart Upload 接口请求用来实现完成整个分块上传。当使用 Upload Parts 上传完所有块以后,必须调用该 API 来完成整个文件的分块上传。在使用该 API 时,您必须在请求 Body 中给出每一个块的 PartNumber 和 ETag,用来校验块的准确性。
由于分块上传完后需要合并,而合并需要数分钟时间,因而当合并分块开始的时候,COS 就立即返回200的状态码,在合并的过程中,COS 会周期性的返回空格信息来保持连接活跃,直到合并完成,COS 会在 Body 中返回合并后块的内容。

  • 当上传块小于1MB 的时候,在调用该 API 时,会返回400 EntityTooSmall;
  • 当上传块编号不连续的时候,在调用该 API 时,会返回400 InvalidPart;
  • 当请求 Body 中的块信息没有按序号从小到大排列的时候,在调用该 API 时,会返回400 InvalidPartOrder;
  • 当 UploadId 不存在的时候,在调用该 API 时,会返回404 NoSuchUpload。

使用示例

cos.multipartComplete({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.zip',              /* 必须 */
    UploadId: '1521389146c60e7e198202e4e6670c5c78ea5d1c60ad62f1862f472941c0fb8c6b7f3528a2', /* 必须 */
    Parts: [
        {PartNumber: '1', ETag: '"0cce40bdbaf2fa0ff204c20fc965dd3f"'},
    ]
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
UploadId 上传任务编号 String
Parts 用来说明本次分块上传中块的信息列表 ObjectArray
- PartNumber 分块的编号 String
- ETag 每个块文件的 MD5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- Location 创建的 Object 的外网访问域名 String
- Bucket 分块上传的目标 Bucket String
- Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
- ETag 合并后文件的 MD5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String

List Parts

List Parts 用来查询特定分块上传中的已上传的块,即罗列出指定 UploadId 所属的所有已上传成功的分块。

使用示例

cos.multipartListPart({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.jpg',              /* 必须 */
    UploadId: '1521389146c60e7e198202e4e6670c5c78ea5d1c60ad62f1862f47294ec0fb8c6b7f3528a2',                      /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
UploadId 标识本次分块上传的 ID。使用 Initiate Multipart Upload 接口初始化分片上传时会得到一个 uploadId,该 ID 不但唯一标识这一分块数据,也标识了这分块数据在整个文件内的相对位置。 String
EncodingType 规定返回值的编码方式 String
MaxParts 单次返回最大的条目数量,默认 1000 String
PartNumberMarker 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
- Bucket 分块上传的目标 Bucket String
- Encoding-type 规定返回值的编码方式 String
- Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
- UploadId 标识本次分块上传的 ID String
- Initiator 用来表示本次上传发起者的信息 Object
- - DisplayName 上传发起者的名称 String
- - ID 上传发起者 ID,格式:qcs::cam::uin/<OwnerUin>:uin/<SubUin>
如果是根帐号,<OwnerUin> 和 <SubUin> 是同一个值
String
- Owner 用来表示这些分块所有者的信息 Object
- - DisplayName Bucket 持有者的名称 String
- - ID Bucket 持有者 ID,一般为用户的 UIN String
- StorageClass 用来表示这些分块的存储级别,枚举值:Standard、Standard_IA、Archive String
- PartNumberMarker 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 String
- NextPartNumberMarker 假如返回条目被截断,则返回 NextMarker 就是下一个条目的起点 String
- MaxParts 单次返回最大的条目数量 String
- IsTruncated 返回条目是否被截断,'true' 或者 'false' String
- Part 分块信息列表 ObjectArray
- - PartNumber 块的编号 String
- - LastModified 块最后修改时间 String
- - ETag 块的 MD5 算法校验值 String
- - Size 块大小,单位 Byte String

Abort Multipart Upload

Abort Multipart Upload 用来实现舍弃一个分块上传并删除已上传的块。当您调用 Abort Multipart Upload 时,如果有正在使用这个 Upload Parts 上传块的请求,则 Upload Parts 会返回失败。当该 UploadId 不存在时,会返回404 NoSuchUpload。

建议您及时完成分块上传或者舍弃分块上传,因为已上传但是未终止的块会占用存储空间进而产生存储费用。

使用示例

cos.multipartAbort({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Key: '1.zip',                           /* 必须 */
    UploadId: '1521389146c60e7e198202e4e6670c5c78ea5d1c60ad62f1862f47294ec0fb8c6b7f3528a2'                       /* 必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
UploadId 标识本次分块上传的 ID。使用 Initiate Multipart Upload 接口初始化分片上传时会得到一个 uploadId,该 ID 不但唯一标识这一分块数据,也标识了这分块数据在整个文件内的相对位置 String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
- statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
- headers 请求返回的头部信息 Object

List Multipart Uploads

List Multiparts Uploads 用来查询正在进行中的分块上传。单次最多列出1000个正在进行中的分块上传。

使用示例

获取前缀为1.zip 的未完成的 UploadId 列表

cos.multipartList({
    Bucket: 'examplebucket-1250000000', /* 必须 */
    Region: 'ap-guangzhou',    /* 必须 */
    Prefix: '1.zip',                        /* 非必须 */
}, function(err, data) {
    console.log(err || data);
});

参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
Delimiter 定界符为一个符号,对 Object 名字包含指定前缀且第一次出现 delimiter 字符之间的 Object 作为一组元素:common prefix。如果没有 prefix,则从路径起点开始 String
EncodingType 规定返回值的编码格式,合法值:url String
Prefix 限定返回的 Object key 必须以 Prefix 作为前缀。注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix String
MaxUploads 设置最大返回的 multipart 数量,合法取值从1到1000,默认1000 String
KeyMarker 与 upload-id-marker 一起使用,
  • 当 upload-id-marker 未被指定时:
    ObjectName 字母顺序大于 key-marker 的条目将被列出,
  • 当upload-id-marker被指定时:
    ObjectName 字母顺序大于key-marker的条目被列出,
    ObjectName 字母顺序等于 key-marker 且 UploadID 大于 upload-id-marker 的条目将被列出。
  • String
    UploadIdMarker 与 key-marker 一起使用,
  • 当 key-marker 未被指定时:
    upload-id-marker 将被忽略,
  • 当 key-marker 被指定时:
    ObjectName字母顺序大于 key-marker 的条目被列出,
    ObjectName 字母顺序等于 key-marker 且 UploadID 大于 upload-id-marker 的条目将被列出。
  • String

    回调函数说明

    function(err, data) { ... }
    参数名 参数描述 类型
    err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    data 请求成功时返回的对象,如果请求发生错误,则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    - Bucket 分块上传的目标 Bucket String
    - Encoding-Type 规定返回值的编码格式,合法值:url String
    - KeyMarker 列出条目从该 key 值开始 String
    - UploadIdMarker 列出条目从该 UploadId 值开始 String
    - NextKeyMarker 假如返回条目被截断,则返回 NextKeyMarker 就是下一个条目的起点 String
    - NextUploadIdMarker 假如返回条目被截断,则返回 UploadId 就是下一个条目的起点 String
    - MaxUploads 设置最大返回的 multipart 数量,合法取值从 1 到 1000 String
    - IsTruncated 返回条目是否被截断,'true' 或者 'false' String
    - Delimiter 定界符为一个符号,对 object 名字包含指定前缀且第一次出现 delimiter 字符之间的 object 作为一组元素:common prefix。如果没有 prefix,则从路径起点开始 String
    - Prefix 限定返回的 Object key 必须以 Prefix 作为前缀。注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix String
    - CommonPrefixs 将 prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix ObjectArray
    - - Prefix 显示具体的 CommonPrefixs String
    - Upload Upload 的信息集合 ObjectArray
    - - Key Object 的名称 String
    - - UploadId 标示本次分块上传的 ID String
    - StorageClass 用来表示分块的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE String
    - Initiator 用来表示本次上传发起者的信息 Object
    - - DisplayName 上传发起者的名称 String
    - - ID 上传发起者 ID,格式:qcs::cam::uin/<OwnerUin>:uin/<SubUin> 如果是根帐号,<OwnerUin> 和 <SubUin> 是同一个值 String
    - Owner 用来表示这些分块所有者的信息 Object
    - - DisplayName Bucket 持有者的名称 String
    - - ID Bucket 持有者 ID,格式:qcs::cam::uin/<OwnerUin>:uin/<SubUin> 如果是根帐号,<OwnerUin> 和 <SubUin> 是同一个值 String
    - Initiated 分块上传的起始时间 String

    分块上传/复制任务操作

    该类方法是对上面原生方法的封装,实现了分块上传/复制的全过程,支持并发分块上传/复制,支持断点续传,支持上传任务的取消,暂停和重新开始等。

    Slice Upload File

    Slice Upload File 可用于实现文件的分块上传。

    使用示例

    cos.sliceUploadFile({
        Bucket: 'examplebucket-1250000000', /* 必须 */
        Region: 'ap-guangzhou',    /* 必须 */
        Key: '1.zip',              /* 必须 */
        Body: file,                /* 必须 */
        TaskReady: function(taskId) {                   /* 非必须 */
            console.log(taskId);
        },
        onHashProgress: function (progressData) {       /* 非必须 */
            console.log(JSON.stringify(progressData));
        },
        onProgress: function (progressData) {           /* 非必须 */
            console.log(JSON.stringify(progressData));
        }
    }, function(err, data) {
        console.log(err || data);
    });

    参数说明

    参数名 参数描述 类型 必填
    Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
    Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
    Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
    Body 上传文件的内容,可以为 File 对象 或者 Blob 对象 File\Blob
    SliceSize 分块大小 String
    AsyncLimit 分块的并发量 String
    StorageClass Object 的存储级别,枚举值:STANDARD、STANDARD_IA String
    TaskReady 上传任务创建时的回调函数,返回一个 taskId,唯一标识上传任务,可用于上传任务的取消(cancelTask),停止(pauseTask)和重新开始(restartTask) Function
    - taskId 上传任务的编号 String
    onHashProgress 计算文件 MD5 值的进度回调函数,回调参数为进度对象 progressData Function
    - progressData.loaded 已经校验的文件部分大小,以字节(bytes)为单位 Number
    - progressData.total 整个文件的大小,以字节(bytes)为单位 Number
    - progressData.speed 文件的校验速度,以字节/秒(bytes/s)为单位 Number
    - progressData.percent 文件的校验百分比,以小数形式呈现,例如:下载 50% 即为 0.5 Number
    onProgress 上传文件的进度回调函数,回调参数为进度对象 progressData Function
    - progressData.loaded 已经上传的文件部分大小,以字节(bytes)为单位 Number
    - progressData.total 整个文件的大小,以字节(bytes)为单位 Number
    - progressData.speed 文件的上传速度,以字节/秒(bytes/s)为单位 Number
    - progressData.percent 文件的上传百分比,以小数形式呈现,例如:下载50%即为0.5 Number

    回调函数说明

    function(err, data) { ... }
    参数名 参数描述 类型
    err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    data 请求成功时返回的对象,如果请求发生错误,则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    - Location 创建的 Object 的外网访问域名 String
    - Bucket 分块上传的目标 Bucket String
    - Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
    - ETag 合并后文件的 MD5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880"注意前后携带双引号 String

    Cancel Task

    根据 taskId 取消分块上传任务。

    使用示例

    var taskId = 'xxxxx';                   /* 必须 */
    cos.cancelTask(taskId);

    参数说明

    参数名 参数描述 类型 必填
    taskId 文件上传任务的编号,在调用 sliceUploadFile 方法时,其 TaskReady 回调会返回该上传任务的 taskId String

    Pause Task

    根据 taskId 暂停分块上传任务。

    使用示例

    var taskId = 'xxxxx';                   /* 必须 */
    cos.pauseTask(taskId);

    参数说明

    参数名 参数描述 类型 必填
    taskId 文件上传任务的编号,在调用 sliceUploadFile 方法时,其 TaskReady 回调会返回该上传任务的 taskId String

    Restart Task

    根据 taskId 重新开始上传任务,可以用于开启用户手动停止的(调用 pauseTask 停止)或者因为上传错误而停止的上传任务。

    使用示例

    var taskId = 'xxxxx';                   /* 必须 */
    cos.restartTask(taskId);

    参数说明

    参数名 参数描述 类型 必填
    taskId 文件上传任务的编号,在调用 sliceUploadFile 方法时,其 TaskReady 回调会返回该上传任务的 taskId String

    Slice Copy File

    Slice Copy File 可用于实现通过分块复制将一个文件从源路径复制到目标路径。在拷贝的过程中,文件元属性和 ACL 可以被修改。用户可以通过该接口实现文件移动,文件重命名,修改文件属性和创建副本。

    操作方法原型

    调用 Slice Copy File 操作:

    cos.sliceCopyFile({
        Bucket: 'examplebucket-1250000000',                               /* 必须 */
        Region: 'ap-guangzhou',                                  /* 必须 */
        Key: '1.zip',                                            /* 必须 */
        CopySource: 'test1.cos.ap-guangzhou.myqcloud.com/2.zip', /* 必须 */
        onProgress:function (progressData) {                     /* 非必须 */
            console.log(JSON.stringify(progressData));
        }
    },function (err,data) {
        console.log(err || data);
    });

    操作参数说明

    参数名 参数描述 类型 必填
    Bucket Bucket 的名称。命名规则为BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
    Region Bucket 所在区域。枚举值请见:Bucket 地域信息 String
    Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
    CopySource 源文件 URL 路径,可以通过 versionid 子资源指定历史版本 String
    ChunkSize 分片复制时,每片的大小字节数,默认值 1048576 (1MB) Number
    SliceSize 使用分片复制的文件大小,默认值 5G Number
    onProgress 上传文件的进度回调函数,回调参数为进度对象 progressData Function
    - progressData.loaded 已经上传的文件部分大小,以字节(bytes)为单位 Number
    - progressData.total 整个文件的大小,以字节(bytes)为单位 Number
    - progressData.speed 文件的上传速度,以字节/秒(bytes/s)为单位 Number
    - progressData.percent 文件的上传百分比,以小数形式呈现,例如:下载50%即为 0.5 Number

    回调函数说明

    function(err, data) { ... }
    参数名 参数描述 类型
    err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档。如果请求成功则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    data 请求成功时返回的对象,如果请求发生错误,则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    - Location 创建的 Object 的外网访问域名 String
    - Bucket 分块上传的目标 Bucket String
    - Key 对象键(Object 的名称),对象在存储桶中的唯一标识,对象键说明 String
    - ETag 合并后文件的 MD5 算法校验值,如 "22ca88419e2ed4721c23807c678adbe4c08a7880",注意前后携带双引号 String

    uploadFiles

    uploadFiles 可用于批量上传文件。

    操作方法原型

    调用 uploadFiles 操作:

    cos.uploadFiles({
        files: [{
            Bucket: config.Bucket, // Bucket 格式:BucketName-APPID
            Region: config.Region,
            Key: '1.jpg',
            Body: file1,
        }, {
            Bucket: config.Bucket, // Bucket 格式:BucketName-APPID
            Region: config.Region,
            Key: '2.jpg',
            Body: file2,
        }],
        SliceSize: 1024 * 1024,
        onProgress: function (info) {
            var percent = parseInt(info.percent * 10000) / 100;
            var speed = parseInt(info.speed / 1024 / 1024 * 100) / 100;
            logger.log('进度:' + percent + '%; 速度:' + speed + 'Mb/s;');
        },
        onFileFinish: function (err, data, options) {
            logger.log(options.Key + '上传' + (err ? '失败' : '完成'));
        },
    }, function (err, data) {
        logger.log(err || data);
    });

    操作参数说明

    参数名 参数描述 类型 必填
    files 文件列表,每一项是传给 putObject 和 sliceUploadFile 的参数对象 Object
    SliceSize 文件大小多大以上使用分片上传,单位 B,小于等于改数值会使用 putObject 上传,大于该数值会使用 sliceUploadFile 上传 Nunber
    onProgress 所有任务 进度汇总计算出来的上传进度 String
    - progressData.loaded 已经上传的文件部分大小,以字节(bytes)为单位 Number
    - progressData.total 整个文件的大小,以字节(bytes)为单位 Number
    - progressData.speed 文件的上传速度,以字节/秒(bytes/s)为单位 Number
    - progressData.percent 文件的上传百分比,以小数形式呈现,例如:下载50%即为 0.5 Number
    onFileFinish 每个文件完成或错误回调 String
    - err 上传的错误信息 Object
    - data 文件完成的信息 Object
    - options 当前完成文件的参数信息 Object

    回调函数说明

    function(err, data) { ... }
    参数名 参数描述 类型
    err 请求发生错误时返回的对象,包括网络错误和业务错误,处理措施请参考 错误码文档,如果请求成功则为空 Object
    - statusCode 请求返回的 HTTP 状态码,如200、403、404等 Number
    - headers 请求返回的头部信息 Object
    data 请求成功时返回的对象,如果请求发生错误,则为空 Object
    - files 每个文件的 error 或 data ObjectArray
    - - err 上传的错误信息 Object
    - - data 文件完成的信息 Object
    - - options 当前完成文件的参数信息 Object

    相关说明

    批量上传

    方法一:
    批量上传可以直接多次调用 putObject 和 sliceUploadFile,达到批量上传效果。通过实例化参数 FileParallelLimit 控制文件并发数,默认3个并发。

    方法二:
    可以调用 cos.uploadFiles 实现批量上传,方法参数 SliceSize 可以控制文件。

    上传队列

    JavaScript SDK 针对 putObject 和 sliceUploadFile 发起的上传任务都有记录队列里,队列相关方法如下。

    1. cos.getTaskList 可以获取任务列表。
    2. cos.pauseTask、cos.restartTask、cos.cancelTask 操作任务。
    3. cos.on('list-update', callback); 可以监听列表和进度变化。

    完整的队列使用例子:demo-queue