阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

斷點續傳上傳

更新時間: Oct 19, 2018

斷點續傳上傳將要上傳的檔案分成若干個分區(Part)分別上傳,所有分區都上傳完成後,將所有分區合并成完整的檔案,完成整個檔案的上傳。

以下代碼用於斷點續傳上傳:

  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("yourucketname");
  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();

斷點續傳詳情請參見開發指南中的斷點續傳