如何根據具有條件讀取的中繼資料擷取或複製物件 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如何根據具有條件讀取的中繼資料擷取或複製物件

透過條件式讀取,您可以將額外的標頭新增至讀取請求,以便將先決條件新增至 S3 操作。如果不符合這些先決條件,讀取請求將會失敗。

您可以在 GETHEADCOPY請求上使用條件式讀取,僅根據物件的中繼資料傳回物件。

當您上傳物件時,Amazon S3 會建立只能由 S3 修改的系統控制中繼資料。實體標籤 (ETags) 和上次修改是系統控制中繼資料的範例。物件的 ETag 是代表物件特定版本的字串。上次修改日期是代表物件建立日期或上次修改日期的中繼資料,以最新日期為準。

透過條件式讀取,您可以根據物件的 ETag 或上次修改日期傳回物件。您可以使用您的請求指定 ETag 值,並僅在 ETag 值相符時傳回物件。這可以確保您只傳回或複製特定版本的物件。您可以使用讀取請求指定上次修改的值,並且只有在自您提供的日期以來已修改該物件時,才能傳回物件。

支援的 APIs

下列 S3 APIs 支援使用條件式讀取:

您可以使用下列標頭來傳回取決於實體標籤 (ETag) 或上次修改日期的物件。如需有關物件中繼資料的詳細資訊,例如 ETags 和上次修改,請參閱 系統定義的物件中繼資料

GetObject

  • If-Match — 只有在物件的 ETag 與提供的 Word 相符時,才能傳回物件。

  • If-Modified-Since — 只有在物件自指定時間以來已經過修改時才傳回物件。

  • If-None-Match — 只有在物件的 ETag 與提供的 Word 不相符時,才能傳回物件。

  • If-Unmodified-Since — 只有在物件自指定時間以來尚未修改時才傳回物件。

如需這些標頭、傳回錯誤以及 S3 順序在單一請求中處理多個條件式標頭的詳細資訊,請參閱 GetObject 在 Amazon Simple Storage Service API 參考中。

HeadObject

  • If-Match — 只有在物件的 ETag 與提供的 Word 相符時,才能傳回物件。

  • If-Modified-Since — 只有在物件自指定時間以來已經過修改時才傳回物件。

  • If-None-Match — 只有在物件的 ETag 與提供的 Word 不相符時,才能傳回物件。

  • If-Unmodified-Since — 只有在物件自指定時間以來尚未修改時才傳回物件。

如需這些標頭、傳回錯誤以及順序 S3 在單一請求中處理多個條件式標頭的詳細資訊,請參閱 HeadObject 在 Amazon Simple Storage Service API 參考中。

CopyObject

  • x-amz-copy-source-if-match — 只有在來源物件的 ETag 與提供的 Word 相符時,才會複製來源物件。

  • x-amz-copy-source-if-modified-since — 只有在來源物件自指定時間以來已經過修改時,才會複製該來源物件。

  • x-amz-copy-source-if-none-match — 只有當來源物件的 ETag 與提供的 Word 不相符時,才會複製來源物件。

  • x-amz-copy-source-if-unmodified-since — 只有在來源物件自指定時間以來尚未修改時,才會複製該來源物件。

如需這些標頭、傳回錯誤以及 S3 順序在單一請求中處理多個條件式標頭的詳細資訊,請參閱 CopyObject 在 Amazon Simple Storage Service API 參考中。