全部产品
阿里云办公

断点续传上传

更新时间:2018-08-28 22:24:32

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

断点续传详情请参见开发指南中的断点续传。完整代码请参见GitHub

以下代码用于断点续传上传:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建OSSClient实例。
  7. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  8. ObjectMetadata meta = new ObjectMetadata();
  9. // 指定上传的内容类型。
  10. meta.setContentType("text/plain");
  11. // 通过UploadFileRequest设置多个参数。
  12. UploadFileRequest uploadFileRequest = new UploadFileRequest("<yourBucketName>","<yourObjectName>");
  13. // 通过UploadFileRequest设置单个参数。
  14. // 设置存储空间名称。
  15. //uploadFileRequest.setBucketName("<yourBucketName>");
  16. // 设置文件名称。
  17. //uploadFileRequest.setKey("<yourObjectName>");
  18. // 指定上传的本地文件。
  19. uploadFileRequest.setUploadFile("<yourLocalFile>");
  20. // 指定上传并发线程数,默认为1。
  21. uploadFileRequest.setTaskNum(5);
  22. // 指定上传的分片大小,范围为100KB~5GB,默认为文件大小/10000。
  23. uploadFileRequest.setPartSize(1 * 1024 * 1024);
  24. // 开启断点续传,默认关闭。
  25. uploadFileRequest.setEnableCheckpoint(true);
  26. // 记录本地分片上传结果的文件。开启断点续传功能时需要设置此参数,上传过程中的进度信息会保存在该文件中,如果某一分片上传失败,再次上传时会根据文件中记录的点继续上传。上传完成后,该文件会被删除。默认与待上传的本地文件同目录,为uploadFile.ucp。
  27. uploadFileRequest.setCheckpointFile("<yourCheckpointFile>");
  28. // 文件的元数据。
  29. uploadFileRequest.setObjectMetadata(meta);
  30. // 设置上传成功回调,参数为Callback类型。
  31. uploadFileRequest.setCallback("<yourCallbackEvent>");
  32. // 断点续传上传。
  33. ossClient.uploadFile(uploadFileRequest);
  34. // 关闭OSSClient。
  35. ossClient.shutdown();