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

限定條件下載

更新時間: Oct 19, 2018

下載檔案時,可以指定一個或多個限定條件。滿足限定條件則下載,不滿足則返回錯誤,不下載。可以使用的限定條件如下:

參數 描述
If-Modified-Since 如果指定的時間早於實際修改時間,則正常傳輸檔案,否則返回錯誤(304 Not modified)。
If-Unmodified-Since 如果指定的時間等於或者晚於檔案實際修改時間,則正常傳輸檔案,否則返回錯誤(412 Precondition failed)。
If-Match 如果指定的ETag和OSS檔案的ETag匹配,則正常傳輸檔案,否則返回錯誤(412 Precondition failed)。
If-None-Match 如果指定的ETag和OSS檔案的ETag不匹配,則正常傳輸檔案,否則返回錯誤(304 Not modified)。

If-Modified-Since和If-Unmodified-Since可以同時存在。If-Match和If-None-Match可以同時存在。

ETag可以通過ossClient.getObjectMeta方法獲取。

以下代碼用於限定條件下載:

  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. GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
  11. // 設定限定條件。
  12. request.setModifiedSinceConstraint(new Date());
  13. // 下載OSS檔案到本地檔案。
  14. ossClient.getObject(request, new File("<yourLocalFile>"));
  15. // 關閉OSSClient。
  16. ossClient.shutdown();

ossClient.getObject和ossClient.downloadFile方法支援限定條件下載。