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

流式下載

更新時間: Oct 19, 2018

如果要下載的檔案太大,或者一次性下載耗時太長,您可以通過流式下載,一次處理部分內容,直到完成檔案的下載。

OssObject對象使用完畢後必須關閉,否則會造成連接泄漏,導致請求無連接可用,程式無法正常工作。關閉方法如下:

  1. OSSObject ossObject = ossClient.getObject(bucketName, objectName);
  2. ossObject.close();

以下代碼用於流式下載:

  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. String bucketName = "<yourBucketName>";
  7. String objectName = "<yourObjectName>";
  8. // 建立OSSClient執行個體。
  9. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  10. // ossObject包含檔案所在的儲存空間名稱、檔案名稱、檔案元資訊以及一個輸入資料流。
  11. OSSObject ossObject = ossClient.getObject(bucketName, objectName);
  12. // 讀取檔案內容。
  13. System.out.println("Object content:");
  14. BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
  15. while (true) {
  16. String line = reader.readLine();
  17. if (line == null) break;
  18. System.out.println("\n" + line);
  19. }
  20. // 資料讀取完成後,獲取的流必須關閉,否則會造成連接泄漏,導致請求無連接可用,程式無法正常工作。
  21. reader.close();
  22. // 關閉OSSClient。
  23. ossClient.shutdown();

流式下載的完整代碼請參見GitHub