全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

分块上传(JavaScript)

最近更新时间:2023-01-16 10:18:47

基本接口

分块上传分三步: 1、初始化 2、上传分块 3、合并分块。

初始化

initiateMultipartUpload - 会启动一个分块上传任务并返回 upload ID。在一个确定的分块上传任务中,upload ID用于关联所有分块。

使用示例
ks3.initiateMultipartUpload({     
    key: 'demo.txt',            // 填写Object完整路径,必填
    acl: '',                    // 访问控制,非必填
    storageClass: '',           // 存储类型,非必填
    headers: {}                 // 非必填
}.then(res => {
     console.log('initiateMultipartUpload res:', res);  // res中会包含后续上传需要的UploadId
})

上传分块

uploadPart - 将在分块上传任务中上传一个块。在你上传任一块之前你必须先要启动一个分块上传任务。在你发送一个启动请求后,KS3会给你一个唯一的 upload ID。每次上传块时,都需要upload ID包含在请求中。

使用示例
ks3.uploadPart({
    key: 'demo.txt',             // 填写Object完整路径,必填
    body: '<partFile>',          // 分块数据,必填
    partNumber: '<partNumber>',  // 分块的序号,必填
    uploadId: '<uploadId>'       // 初始化分块上传时获取的上传id,必须
}.then(res => {
     console.log('uploadPart res:', res);  // 上传成功返回res.headers.etag,合并分块会用到
})

合并分块

completeMultipart - 将完成对象装配之前的块上传任务 。用户启动一个分块上传任务后,会使用 Upload Parts上传所有的块。成功上传所有相关块之后,用户需要调用此接口来完成分块上传。收到完成请求后,KS3将会根据块序号将所有的块组装起来创建一个新的对象。

使用示例
ks3.completeMultipart({
    key: 'demo.txt',              // 填写Object完整路径,必填
    parts: [{
                partNumber: sliceItem.partNumber,
                etag: data.headers.etag
            }],                  // 所有分块数据的集合,数组格式,必填
    uploadId: '<uploadId>'       // 上传的uploadId,必须
}.then(res => {
     console.log('completeMultipart res:', res); 
})

其他接口

查询已上传块

listParts - 将会列出指定上传任务中所有已上传的块。

使用示例
ks3.listParts({
    key: 'demo.txt',             // 填写Object完整路径,必填
    uploadId: '<uploadId>',      // 初始化分块上传时获取的上传id,必须
}.then(res => {
    console.log('listParts res:', res); 
})

查看bucket下的分块上传

ListMultipartUploads - 查看bucket下的分块上传。

使用示例
ks3.ListMultipartUploads({
    bucket: '<bucket>',      // bucket名称,非必须
    prefix: '<prefix>',      // 限定响应结果列表使用的前缀,正如你在电脑中使用的文件夹一样
    'max-uploads': 100,      //限定要列出正在进行任务的上限值([1,1000]),默认1000,非必须 
}.then(res => {
    console.log('ListMultipartUploads res:', res); 
})

取消分块上传

abortMultipartUpload - 将会放弃一个分块上传任务。当任务被放弃后,使用相应的upload ID则无法实现任何块的上传。存储中已经上传的块将会被释放。

使用示例
ks3.abortMultipartUpload({
    key: 'demo.txt',             // 填写Object完整路径,必填
    uploadId: '<uploadId>',      // 初始化分块上传时获取的上传id,必须
}.then(res => {
    console.log('abortMultipartUpload res:', res); 
})

分块上传全流程

为便于用户上传,ks3-js-sdk将完整分块上传流程进行封装,可直接调用uploadMultiPart进行分块上传,uploadMultiPart已经包含初始化上传任务,自动将待上传的文件分块并上传,最后合并分块。

使用示例
ks3.uploadMultiPart({
    key: file.name,            // 填写Object完整路径,必填
    file: file,                // 待上传的文件,必填
    encryption: true,          // 是否使用服务端加密,非必须,仅支持"AES256"加密
    acl: 'private'             //文件预设ACL(private | public-read),默认值private,非必须 
}, function(res){
    console.log('uploadMultiPart res :', res);
})
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈