1. 云计算教程网首页
  2. 阿里云

断点续传上传

断点续传上传将要上传的文件分成若干个分片(Part)分别上传,所有分片都上传完成后,将所有分片合并成完整的文件,完成整个文件的上传。

说明 以下示例代码中的 catch 语法,请自行学习 es6 promise、async/await。 SDK 的使用方式,请参考安装。

断点续传详情请参见开发指南中的断点续传。

分片上传提供 progress 参数方便用户传递进度回调,在回调中 SDK 将当前已经上传成功的比例和断点信息作为参数。为了实现断点上传,可以在上传过程中保存断点信息(checkpoint),发生错误后,再将已保存的 checkpoint 作为参数传递给 multipartUpload,此时将从上次失败的地方继续上传。

let OSS = require('ali-oss');

let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: 'Your bucket name'
});

let checkpoint;
async function resumeUpload() {
  // retry 5 times
  for (let i = 0; i < 5; i++) {
    try {
      const result = await client.multipartUpload('object-name', filePath, {
        checkpoint,
        async progress(percentage, cpt) {
          checkpoint = cpt;
        },
      });
      console.log(result);
      break; // break if success
    } catch (e) {
      console.log(e);
    }
  }
}

resumeUpload();

上述示例代码将 checkpoint 保存在变量中,如果程序崩溃,则 checkpoint 信息会丢失。建议将 checkpoint 保存在文件中,在程序重启后则可以从文件中读取 checkpoint 信息。

发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/3121.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

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

QR code