详情页标题前

腾讯云对象存储上传对象

详情页1

简介

文档提供关于对象的高级上传、简单上传、分块上传等操作相关的 API 概览以及 SDK 示例代码。说明 常见上传错误排查,请参考 常见问题简单操作

API 操作名 操作描述
PUT Object 简单上传对象 上传一个对象至存储桶
Append Object 追加上传对象 将对象以分块追加的方式上传至存储桶
POST Object 表单上传对象 使用表单请求上传对象

分块操作

API 操作名 操作描述
List Multipart Uploads 查询分块上传 查询正在进行中的分块上传信息
Initiate Multipart Upload 初始化分块上传 初始化分块上传任务
Upload Part 上传分块 分块上传对象
List Parts 查询已上传块 查询特定分块上传操作中已上传的块
Complete Multipart Upload 完成分块上传 完成整个对象的分块上传
Abort Multipart Upload 终止分块上传 终止一个分块上传操作并删除已上传的块

高级接口(推荐)

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

高级上传

功能说明

Upload File 实现高级上传,传入参数 SliceSize 可以控制文件大小超出一个数值(默认1MB)时自动使用分块上传,否则使用简单上传。

使用示例

var uploadFile = function(file) {    cos.uploadFile({        Bucket: 'examplebucket-1250000000', /* 必须 */        Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */        Key: file.name,              /* 必须 */        FilePath: file.path,                /* 必须 */        FileSize: file.size,                 /* v1.4.3之前的版本必须,v1.4.3及以后的版本非必须 */        SliceSize: 1024 * 1024 * 5,     /* 触发分块上传的阈值,超过5MB使用分块上传,非必须,按需调整,最小支持1MB */        onTaskReady: function(taskId) {                   /* 非必须 */            console.log(taskId);        },        onProgress: function (progressData) {           /* 非必须 */            console.log(JSON.stringify(progressData));        },        onFileFinish: function (err, data, options) {   /* 非必须 */          console.log(options.Key + '上传' + (err ? '失败' : '完成'));        },        // 支持自定义headers 非必须        Headers: {          'x-cos-meta-test': 123        },    }, function(err, data) {        console.log(err || data);    });}
wx.chooseMessageFile({ count: 10, type: 'all', success: function(res) { uploadFile(res.tempFiles[0]); }});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
FilePath 上传文件路径 String
FileSize 上传文件大小(v1.4.3之前的版本必须,v1.4.3及以后的版本非必须) Number
SliceSize 表示文件大小超出一个数值时使用分块上传,单位 Byte,默认值1048576(1MB),小于等于该数值会使用 putObject 上传,大于该数值会使用 sliceUploadFile 上传 Number
AsyncLimit 分块的并发量,仅在触发分块上传时有效 Number
StorageClass 对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE、DEEP_ARCHIVE 等,更多存储类型请参见 存储类型概述 String
UploadAddMetaMd5 当上传时,给对象的元数据信息增加 x-cos-meta-md5 赋值为对象内容的 MD5 值,格式为 32 位小写字符串。例如:4d00d79b6733c9cc066584a02ed03410 String
CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
onTaskReady 上传任务创建时的回调函数,返回一个 taskId,唯一标识上传任务,可用于上传任务的取消(cancelTask),停止(pauseTask)和重新开始(restartTask) Function
– taskId 上传任务的编号 String
onProgress 上传文件的进度回调函数,回调参数为进度对象 progressData Function
– progressData.loaded 已经上传的文件部分大小,以字节(Bytes)为单位 Number
– progressData.total 整个文件的大小,以字节(Bytes)为单位 Number
– progressData.speed 文件的上传速度,以字节/秒(Bytes/s)为单位 Number
– progressData.percent 文件的上传百分比,以小数形式呈现,例如,上传50%即为0.5 Number
onFileFinish 每个文件完成或错误回调 Function
– err 上传的错误信息 Object
– data 文件完成的信息 Object
– options 当前完成文件的参数信息 Object

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码 Object
– statusCode 请求返回的 HTTP 状态码,例如200、403、404等 Number
– headers 请求返回的头部信息 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
– statusCode 请求返回的 HTTP 状态码,例如200、403、404等 Number
– headers 请求返回的头部信息 Object
– Location 上传完的文件访问地址 String
– Bucket 分块上传的目标存储桶,仅在触发分块上传时返回 String
– Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述,仅在触发分块上传时返回 String
– ETag 合并后文件的唯一 ID,格式:”uuid-“例如"22ca88419e2ed4721c23807c678adbe4c08a7880-3"注意前后携带双引号 String
– VersionId 在开启过版本控制的存储桶中上传对象返回对象的版本 ID,存储桶从未开启则不返回该参数 String

分块上传对象(断点续传)

功能说明

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

使用示例

var sliceUploadFile = function (file) {    var key = file.name;    cos.sliceUploadFile({        Bucket: 'examplebucket-1250000000',         /* 必须 */        Region: 'COS_REGION',                       /* 必须 */        Key: 'exampleobject',                       /* 必须 */        FilePath: file.path,                        /* 必须 */        FileSize: file.size,                        /* 非必须 */        CacheControl: 'max-age=7200',               /* 非必须 */        // 支持自定义headers 非必须        Headers: {          'x-cos-meta-test': 123        },        Query: {                                     /* 非必须 */            bb: 123,        },        onTaskReady: function(taskId) {              /* 非必须 */            console.log(taskId);        },        onHashProgress: function(info) {             /* 非必须 */            console.log('check hash', JSON.stringify(info));        },        onProgress: function(info) {                 /* 非必须 */            console.log(JSON.stringify(info));        }    }, requestCallback);};wx.chooseMessageFile({    count: 10,    type: 'all',    success: function(res) {        sliceUploadFile(res.tempFiles[0]);    }});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
FilePath 上传文件路径 String
SliceSize 分块大小 Number
AsyncLimit 分块的并发量,仅在触发分块上传时有效 Number
StorageClass 对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE 等,更多存储类型请参见 存储类型概述 文档 String
CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
onTaskReady 上传任务创建时的回调函数,返回一个 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 创建对象的外网访问域名 String
– Bucket 分块上传的目标存储桶 String
– Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
– ETag 合并后文件的唯一 ID,格式:"uuid-"例如"22ca88419e2ed4721c23807c678adbe4c08a7880-3"注意前后携带双引号 String
– VersionId 在开启过版本控制的存储桶中上传对象返回对象的版本 ID,存储桶从未开启则不返回该参数 String

批量上传

功能说明

方法一:
批量上传可以直接多次调用 putObject 和 sliceUploadFile,达到批量上传效果。通过实例化参数 FileParallelLimit 控制文件并发数,默认3个并发。
方法二:
可以调用 cos.uploadFiles 实现批量上传,传入参数 SliceSize 可以控制文件大小超出一个数值时使用分块上传。以下是 uploadFiles 方法说明。

方法原型

调用 uploadFiles 操作:

var uploadFiles = function(files) {    var fileList = files.map(function(file) {        return Object.assign(file, {              FilePath: file.path, /* 必须 */            FileSize: file.size, /* v1.4.3之前的版本必须,v1.4.3及以后的版本非必须 */            Bucket: 'examplebucket-1250000000', /* 必须 */            Region: 'COS_REGION',/* 存储桶所在地域,必须字段 */            Key: file.name, /* 必须 */            onTaskReady: function(taskId) {              /* taskId可通过队列操作来取消上传cos.cancelTask(taskId)、停止上传cos.pauseTask(taskId)、重新开始上传cos.restartTask(taskId) */              console.log(taskId);            },            // 支持自定义headers 非必须            Headers: {              'x-cos-meta-test': 123            },        });    });    cos.uploadFiles({        files: fileList,        SliceSize: 1024 * 1024 * 10,    /* 设置大于10MB采用分块上传,按需调整,最小支持1MB */        onProgress: function (info) {            var percent = parseInt(info.percent * 10000) / 100;            var speed = parseInt(info.speed / 1024 / 1024 * 100) / 100;            console.log('进度:' + percent + '%; 速度:' + speed + 'Mb/s;');        },        onFileFinish: function (err, data, options) {            console.log(options.Key + '上传' + (err ? '失败' : '完成'));        },    }, function (err, data) {        console.log(err || data);    });}wx.chooseMessageFile({    count: 10,    type: 'all',    success: function(res) {        uploadFiles(res.tempFiles);    }});

参数说明

参数名 参数描述 类型 是否必填
files 文件列表,每一项是传给 putObject 和 sliceUploadFile 的参数对象 Object
– Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
– Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
– Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
– FilePath 上传文件路径 String
– FileSize 上传文件大小(v1.4.3之前的版本必须,v1.4.3及以后的版本非必须) Number
– CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
– ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
– ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
– ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
– ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
– Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
– Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
– onTaskReady 上传任务创建时的回调函数,返回一个 taskId,唯一标识上传任务,可用于上传任务的取消(cancelTask),停止(pauseTask)和重新开始(restartTask) Function
— taskId 上传任务的编号 String
SliceSize 表示文件大小超出一个数值时使用分块上传,单位 Byte,默认值1048576(1MB),小于等于该数值会使用 putObject 上传,大于该数值会使用 sliceUploadFile 上传 Number
onProgress 所有任务 进度汇总计算出来的上传进度 String
– progressData.loaded 已经上传的文件部分大小,以字节(Bytes)为单位 Number
– progressData.total 整个文件的大小,以字节(Bytes)为单位 Number
– progressData.speed 文件的上传速度,以字节/秒(Bytes/s)为单位 Number
– progressData.percent 文件的上传百分比,以小数形式呈现,例如:上传50%即为0.5 Number
onFileFinish 每个文件完成或错误回调 Function
– 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
– – error 上传的错误信息 Object
– – data 文件完成的信息 Object
– – options 当前完成文件的参数信息 Object

上传队列

小程序 SDK 针对 putObject 发起的上传任务都有记录在队列中,队列相关方法如下。1. var taskList = cos.getTaskList() 可以获取任务列表。2. cos.pauseTask()、cos.restartTask()、cos.cancelTask() 操作任务。3. cos.on(‘list-update’, callback); 可以监听列表和进度变化。完整的队列使用例子,请参见 demo-queue

取消上传任务

根据 taskId 取消上传任务。使用示例

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

参数说明

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

暂停上传任务

根据 taskId 暂停上传任务。使用示例

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

参数说明

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

重启上传任务

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

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

参数说明

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

简单操作

简单上传对象

功能说明

PUT Object 接口可以上传一个对象至指定存储桶中。该操作需要请求者对存储桶有 WRITE 权限。注意1. Key(文件名)不能以/结尾,否则会被识别为文件夹。2. Key(文件名)同名上传默认为覆盖操作。若您未开启版本控制且不想覆盖云上文件时,请确保上传时的 Key 不重复。3. 每个主账号(即同一个 APPID),存储桶的 ACL 规则数量最多为1000条,对象 ACL 规则数量不限制。如果您不需要进行对象 ACL 控制,请在上传时不要设置,默认继承存储桶权限。4. 上传之后,您可以用同样的 Key 生成预签名链接(下载请指定 method 为 GET,具体接口说明见下文,分享到其他端来进行下载。但注意如果您的文件是私有读权限,那么预签名链接只有一定的有效期)。

使用示例

选择文件并上传(使用 Body 参数):

// 此处以选择图片api(wx.chooseImage)为参考,其他api请参考小程序官方文档wx.chooseImage({    count: 1,    success: function(res) {        var file = res.tempFiles[0];        // 微信小程序里获取文件管理器        var wxfs = wx.getFileSystemManager();        wxfs.readFile({            filePath: file.path,            success: function (res) {                cos.putObject({                    Bucket: config.Bucket,                    Region: config.Region,                    Key: file.name,                    Body: res.data, // Body里传入的是文件内容                }, function(err, data) {                    console.log(err || data);                });            },            fail: function(err) {              console.error(err)            },        });    },    fail: function(err) {      console.error(err)    },});

选择文件并上传(使用 FilePath 参数需要 sdk 版本至少达到v1.3.0):

// 此处以选择图片api(wx.chooseImage)为参考,其他api请参考小程序官方文档wx.chooseImage({    count: 1,    success: function(res) {        var file = res.tempFiles[0];        cos.putObject({            Bucket: config.Bucket,            Region: config.Region,            Key: file.name,            FilePath: file.path,  // FilePath传入的是文件路径        }, function(err, data) {            console.log(err || data);        });    },    fail: function(err) {      console.error(err)    },});

传字符串作为文件内容:

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

上传base64作为文件内容:

var base64Url ='data:image/png;base64,iVBORw0xxx'; // 图片base64以实际为准var m = /data:image\/(\w+);base64,(.*)/.exec(base64Url) || [];var format = m[1]; // 取出文件后缀 pngvar bodyData = m[2]; // 取出真实base64值 iVBORw0xxxcos.putObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'ap-beijing',    /* 必须 */    Key: '1.' + format,  /* 必须 */    Body: bodyData,    /* 必须 */}, function(err, data) {    console.log(err || data);});

创建目录:

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

自定义Headers:

cos.putObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'ap-beijing',    /* 必须 */    Key: 'a',              /* 必须 */    Body: 'hello', /* 必须 */    // 支持自定义headers 非必须    Headers: {      'x-cos-meta-test': 123    },}, function(err, data) {    console.log(err || data);});

上传对象(单链接限速):说明关于上传对象的限速说明,请参见 单链接限速

cos.putObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */    Key: 'exampleobject',              /* 必须 */    StorageClass: 'STANDARD',    Body: 'hello!', // 上传文件对象,字符串或选择的文件    Headers: {      'x-cos-traffic-limit': 819200, // 限速值设置范围为819200 - 838860800,单位默认为 bit/s,即800Kb/s - 800Mb/s,如果超出该范围将返回400错误。    },    onProgress: function(progressData) {        console.log(JSON.stringify(progressData));    }}, function(err, data) {    console.log(err || data);});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
Body 创建的文件的文本内容,可以为字符串、ArrayBuffer String\ArrayBuffer
CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
ACL 定义对象的访问控制列表(ACL)属性,枚举值请参见 ACL 概述 文档中对象的预设 ACL 部分,例如 default,private,public-read 等注意:如果您不需要进行对象 ACL 控制,请设置为 default 或者此项不进行设置,默认继承存储桶权限 String
GrantRead 赋予被授权者读取对象的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantReadAcp 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantWriteAcp 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
StorageClass 设置对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD。更多存储类型,请参见 存储类型概述 String
x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存。大小限制2KB String
onTaskReady 上传任务创建时的回调函数,返回一个 taskId,唯一标识上传任务,可用于上传任务的取消(cancelTask),停止(pauseTask)和重新开始(restartTask) Function
– taskId 上传任务的编号 String
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 的值可以用于检查对象在上传过程中是否有损坏例如"09cba091df696af91549de27b8e7d0f6"注意:这里的 ETag 值字符串前后带有双引号 String
– Location 创建对象的外网访问域名 String
– VersionId 在开启过版本控制的存储桶中上传对象返回对象的版本 ID,存储桶从未开启则不返回该参数 String

追加上传对象

功能说明

将对象以分块追加的方式上传至存储桶(APPEND Object)。注意COS 小程序 SDK 版本需要大于等于 v1.1.1。对象属性为 appendable 时才能使用本接口追加上传。对象首次使用 APPEND Object 接口上传时,该对象的属性自动为 appendable。可以使用 GET Object 或 HEAD Object 接口获取 x-cos-object-type 响应头来判断对象属性。

使用示例

初次追加上传对象:

cos.appendObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */    Key: 'test.txt',              /* 必须 */    Body: fileObject, // 上传文件对象    Position: 0, // 初次上传为0}, function(err, data) {    console.log(err || data);});

判断存储桶内的对象是否可追加对象:

cos.headObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */    Key: 'test.txt',              /* 必须 */}, function(err, data) {    if (err) return console.log(err);    // data.headers没有x-cos-object-type字段需要配置expose-headers,参考文档:https://cloud.tencent.com/document/product/436/13318    var objectType = data.headers['x-cos-object-type'];    console.log(objectType === 'appendable');});

查询可追加对象的Position并追加上传:

cos.headObject({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */    Key: 'test.txt',              /* 必须 */}, function(err, data) {    if (err) return console.log(err);    // 首先取到要追加的文件当前长度,即需要上送的Position    var position = data.headers['content-length'];    cos.appendObject({        Bucket: 'examplebucket-1250000000', /* 必须 */        Region: 'COS_REGION',     /* 存储桶所在地域,必须字段 */        Key: 'test.txt',              /* 必须 */        Body: '66666',        Position: position,    },    function(err, data) {        if (err) return console.log(err);        // 也可以取到下一次上传的position继续追加上传        // data.headers没有x-cos-next-append-position字段需要配置expose-headers,参考文档:https://cloud.tencent.com/document/product/436/13318        var nextPosition = data.headers['x-cos-next-append-position'];        console.log(nextPosition);    })});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
Body 创建的文件的文本内容,可以为字符串 String\ArrayBuffer
Position 追加操作的起始点,单位为字节。首次追加则设置 Position=0,后续追加则设置 Position 为当前 Object 的 content-length Number
CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
ACL 定义对象的访问控制列表(ACL)属性,枚举值请参见 ACL 概述 文档中对象的预设 ACL 部分,例如 default,private,public-read 等 注意:如果您不需要进行对象 ACL 控制,请设置为 default 或者此项不进行设置,默认继承存储桶权限 String
GrantRead 赋予被授权者读取对象的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantReadAcp 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantWriteAcp 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账户授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
StorageClass 设置对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE、DEEP_ARCHIVE 等,默认值:STANDARD。更多存储类型请参见 存储类型概述 String
x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存。大小限制2KB String

回调函数说明

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

表单上传对象

POST Object 接口请求可以将用户 wx.chooseImage 选择的文件对象(Object)上传至指定存储桶中。该操作需要请求者对存储桶有 WRITE 权限。注意 onProgress 进度反馈依赖小程序 UploadTask.onProgressUpdate,在部分安卓机型上会有进度不准确的问题。

使用示例

简单上传文件

cos.postObject({    Bucket: 'examplebucket-1250000000',    Region: 'ap-beijing',    Key: filename,    FilePath: tmpFilePath, // wx.chooseImage 选择文件得到的 tmpFilePath    onProgress: function(progressData) {        console.log(JSON.stringify(progressData));    }}, function (err, data) {    console.log(err || data);});

上传文件到指定目录:

var folder = 'examplefolder/';cos.postObject({    Bucket: 'examplebucket-1250000000',    Region: 'ap-beijing',    Key: folder + filename,              /* 必须 */    FilePath: tmpFilePath, // wx.chooseImage 选择文件得到的 tmpFilePath    onProgress: function(progressData) {        console.log(JSON.stringify(progressData));    }}, function(err, data) {    console.log(err || data);});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
CacheControl RFC 2616中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616中定义的编码格式,将作为对象的元数据保存 String
ContentType RFC 2616中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616中定义的过期时间,将作为对象的元数据保存 String
Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 String
ACL 定义对象的访问控制列表(ACL)属性,枚举值请参见 ACL 概述 文档中对象的预设 ACL 部分,如 default,private,public-read 等 注意:如果您不需要进行对象 ACL 控制,请设置为 default 或者此项不进行设置,默认继承存储桶权限 String
StorageClass 设置对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD。更多存储类型,请参见 存储类型概述 String
x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存,大小限制2K String
FilePath 上传文件的临时文件路径,可通过 wx.chooseImage 方法选择得到 String
onProgress 进度回调函数,被调用时第一个参数是 processData 对象 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
– Location 返回创建对象的外网访问域名 String
– VersionId 在启用版本控制的存储桶中,返回对象的版本 ID String

分块操作

关于分块上传的更多说明请参见 分块上传。分块上传对象可包括的操作如下:分块上传对象:初始化分块上传,上传分块,完成所有分块上传。分块续传:查询已上传的分块,上传分块,完成所有分块上传。删除已上传分块。

查询分块上传

功能说明

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

使用示例

获取前缀为 exampleobject 的未完成的 UploadId 列表,示例如下:

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

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Prefix 对象键前缀匹配,限定返回中只包含指定前缀的对象键。注意使用 prefix 查询时,返回的对象键 中仍会包含 Prefix String
Delimiter 定界符为一个分隔符号,用于对对象键进行分组。一般是传/。所有对象键从 Prefix 或从头(如未指定 Prefix)到首个 delimiter 之间相同部分的路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix String
EncodingType 规定返回值的编码格式,合法值:url String
MaxUploads 设置最大返回的条目数量,合法取值为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 分块上传的目标存储桶 String
– Encoding-Type 规定返回值的编码格式,合法值:url String
– KeyMarker 列出条目从该 key 值开始 String
– UploadIdMarker 列出条目从该 UploadId 值开始 String
– NextKeyMarker 假如返回条目被截断,则返回 NextKeyMarker 就是下一个条目的起点 String
– NextUploadIdMarker 假如返回条目被截断,则返回 UploadId 就是下一个条目的起点 String
– MaxUploads 设置最大返回的条目数量,合法取值范围为1 – 1000 String
– IsTruncated 返回条目是否被截断,’true’ 或者 ‘false’ String
– Prefix 对象键前缀匹配,限定返回中只包含指定前缀的对象键。 String
– Delimiter 定界符为一个分隔符号,用于对对象键进行分组。一般是传/。所有对象键从 Prefix 或从头(如未指定 Prefix)到首个 delimiter 之间相同部分的路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix String
– CommonPrefixs 将 prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix ObjectArray
– – Prefix 显示具体的 Common Prefixs String
– Upload 分块上传的信息集合 ObjectArray
– – Key 对象的名称,即对象键 String
– – UploadId 表示本次分块上传的 ID String
– – StorageClass 用于表示分块的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE 等,更多存储类型请参见 存储类型概述 文档 String
– – Initiator 用于表示本次上传发起者的信息 Object
– – – DisplayName 上传发起者的名称 String
– – – ID 上传发起者 ID,格式:qcs::cam::uin/:uin/如果是主账号, 和 是同一个值 String
– – Owner 表示这些分块持有者的信息 Object
– – – DisplayName 分块持有者的名称 String
– – – ID 分块持有者 ID,格式:qcs::cam::uin/:uin/如果是主账号, 和 是同一个值 String
– – Initiated 分块上传的起始时间 String

初始化分块上传

功能说明

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

使用示例

cos.multipartInit({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',    /* 必须 */    Key: 'exampleobject',              /* 必须 */}, function(err, data) {    console.log(err || data);    if (data) {      uploadId = data.UploadId;    }});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
CacheControl RFC 2616 中定义的缓存策略,将作为对象的元数据保存 String
ContentDisposition RFC 2616 中定义的文件名称,将作为对象的元数据保存 String
ContentEncoding RFC 2616 中定义的编码格式,将作为对象的元数据保存 String
ContentType RFC 2616 中定义的内容类型(MIME),将作为对象的元数据保存 String
Expires RFC 2616 中定义的过期时间,将作为对象的元数据保存 String
ACL 定义对象的访问控制列表(ACL)属性,枚举值请参见 ACL 概述 文档中对象的预设 ACL 部分,如 default,private,public-read 等 注意:如果您不需要进行对象 ACL 控制,请设置为 default 或者此项不进行设置,默认继承存储桶权限 String
GrantRead 赋予被授权者读取对象的权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账号授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=”[OwnerUin]”,可使用半角逗号(,)分隔多组被授权者:当需要给子账号授权时,id="qcs::cam::uin/:uin/"当需要给主账号授权时,id="qcs::cam::uin/:uin/"例如'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' String
StorageClass 设置对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE 等,更多存储类型请参见 存储类型概述 文档。默认值:STANDARD String
x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据返回。大小限制2KB String

回调函数说明

function(err, data) { ... }
参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误,如果请求成功则为空,更多详情请参见 错误码 文档 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
Bucket 分块上传的目标存储桶,格式为 BucketName-APPID,例如 examplebucket-1250000000 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
UploadId 在后续上传中使用的 ID String

上传分块

功能说明

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: 'COS_REGION',     /* 存储桶所在地域,必须字段 */   Key: 'exampleobject',       /* 必须 */   UploadId: 'exampleUploadId',   PartNumber: 1,   Body: fileObject}, function(err, data) {   console.log(err || data);   if (data) {     eTag = data.ETag;   }});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
ContentLength RFC 2616中定义的 HTTP 请求内容长度(字节) String
PartNumber 分块的编号 Number
UploadId 本次分块上传任务的编号 String
Body 上传文件分块的内容,可以为字符串或者 ArrayBuffer 对象 String/ArrayBuffer
Expect RFC 2616 中定义的 HTTP 请求内容长度(字节)。当使用 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

查询已上传块

功能说明

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

使用示例

cos.multipartListPart({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',    /* 必须 */    Key: 'exampleobject',              /* 必须 */    UploadId: 'exampleUploadId',                      /* 必须 */}, function(err, data) {    console.log(err || data);});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
UploadId 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId 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 分块上传的目标存储桶 String
– Encoding-type 规定返回值的编码方式 String
– Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
– UploadId 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId String
– Initiator 用来表示本次上传发起者的信息 Object
– – DisplayName 上传发起者的名称 String
– – ID 上传发起者 ID,格式:qcs::cam::uin/:uin/如果是主账号, 和 是同一个值 String
– Owner 用来表示这些分块所有者的信息 Object
– – DisplayName 存储桶持有者的名称 String
– – ID 存储桶持有者 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

完成分块上传

功能说明

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: 'COS_REGION',    /* 必须 */    Key: 'exampleobject',              /* 必须 */    UploadId: 'exampleUploadId', /* 必须 */    Parts: [        {PartNumber: 1, ETag: 'exampleETag'},    ]}, function(err, data) {    console.log(err || data);});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
UploadId 上传任务编号 String
Parts 用来说明本次分块上传中块的信息列表 ObjectArray
– PartNumber 分块的编号 Number
– 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 创建对象的外网访问域名 String
– Bucket 分块上传的目标存储桶 String
– Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
– ETag 合并后文件的唯一 ID,格式:”uuid-“例如 "22ca88419e2ed4721c23807c678adbe4c08a7880-3",注意前后携带双引号 String

终止分块上传

功能说明

Abort Multipart Upload 用来实现终止一个分块上传操作并删除已上传的块。当您调用 Abort Multipart Upload 时,如果有正在使用这个 UploadId 上传块的请求,则 Upload Parts 会返回失败。当该 UploadId 不存在时,会返回404 NoSuchUpload。注意:建议您及时完成分块上传或者舍弃分块上传,因为已上传但是未终止的块会占用存储空间进而产生存储费用。

使用示例

cos.multipartAbort({    Bucket: 'examplebucket-1250000000', /* 必须 */    Region: 'COS_REGION',    /* 必须 */    Key: 'exampleobject',                           /* 必须 */    UploadId: 'exampleUploadId'                       /* 必须 */}, function(err, data) {    console.log(err || data);});

参数说明

参数名 参数描述 类型 是否必填
Bucket 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
Region 存储桶所在地域,枚举值请参见 地域和访问域名 String
Key 对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述 String
UploadId 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId String

回调函数说明

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



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/146099.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云云函数(SCF)挂载 CFS 文件系统-云淘科技

    操作场景 腾讯云文件存储 CFS 提供可扩展的共享文件存储服务,可与腾讯云服务器、容器服务或者批量处理等服务搭配使用。CFS 符合标准的 NFS 文件系统访问协议,为多个计算节点提供共享的数据源,支持弹性容量和性能的扩展,现有应用无需修改即可挂载使用,是一种高可用、高可靠的分布式文件系统,适合于大数据分析、媒体处理和内容管理等场景。nCFS 成本低廉,采用按…

    2023年12月9日
  • 腾讯云对象存储删除图库图片

    简介 本文档提供关于删除图库图片的相关 API 概览以及 SDK 示例代码。 API 操作描述 删除图库图片 该接口用于删除图库图片。 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 删除图库图片 功能说明 该接口用于删除图库图片。说明: COS iOS SDK 版本需要大于等于 v6.2.9。 示例代码 Objec…

    腾讯云 2023年12月9日
  • 阿里云ECS云服务器如何通过内网调用API-云淘科技

    如果专有网络VPC类型的ECS实例没有设置公网IP,则无法调用API。本文介绍该类实例如何通过阿里云内网调用API。 背景信息 由于云服务器ECS提供的接入地址(Endpoint)为公网服务地址,当您的ECS实例没有分配公网带宽或者不存在公网IP地址时,无法使用阿里云CLI或者SDK等工具发起API请求。此时,您可以通过以下两种方式实现阿里云内网调用API。…

    阿里云服务器 2023年12月9日
  • 腾讯云对象存储盲水印

    简介 本文档提供关于盲水印相关的 API 概览以及 SDK 示例代码。 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参见 SDK API。 添加盲水印 功能说明 盲水印支持在上传时添加以及下载时添加。 示例代码一:上传时添加盲水印 PutObjectRequest request = new PutObjectRequest(bucket,…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS错误处理-云淘科技

    在使用SDK访问日志服务端时,可能会出现网络中断、网络延迟导致的请求失败。本文介绍SDK请求失败时的错误处理逻辑。 错误类型及处理原则 SDK可能出现的异常错误可以分成如下几类: 由日志服务端返回的错误。这类错误由日志服务端返回并由SDK处理。关于这类错误的详细信息可以参见具体的API接口说明、API错误码。关于错误码的更多信息,请参见错误码。 由SDK在向…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。