本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何根據具有條件讀取的中繼資料擷取或複製物件
透過條件式讀取,您可以將額外的標頭新增至讀取請求,以便將先決條件新增至 S3 操作。如果不符合這些先決條件,讀取請求將會失敗。
您可以在 GET
、 HEAD
或 COPY
請求上使用條件式讀取,僅根據物件的中繼資料傳回物件。
當您上傳物件時,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 參考中。