使用物件中繼資料 - Amazon Simple Storage Service

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

使用物件中繼資料

您可以在上傳物件到 Amazon S3 時設定物件中繼資料。物件中繼資料是一組名稱/值對。上傳物件之後,即無法修改物件中繼資料。修改物件中繼資料唯一的方式是製作物件的複本,再設定中繼資料。

建立物件時,您還可以指定能在儲存貯體中找出獨一物件的金鑰名稱。物件索引鍵 (或索引鍵名稱) 可在 Amazon S3 儲存貯體中找出獨一的物件。如需詳細資訊,請參閱「建立物件索引鍵名稱」。

Amazon S3 中的中繼資料有兩種:系統定義中繼資料使用者定義中繼資料。下列章節提供有關系統定義和使用者定義中繼資料的詳細資訊。如需使用 Amazon S3 主控台編輯中繼資料的詳細資訊,請參閱「在 Amazon S3 主控台中編輯物件中繼資料」。

系統定義的物件中繼資料

若是存放在儲存貯體中的每個物件,Amazon S3 會保留一組系統中繼資料。Amazon S3 會視需要處理此系統中繼資料。例如,Amazon S3 會保留物件建立日期與大小中繼資料,而且在物件管理過程中會使用這項資訊。

系統中繼資料可分為兩類:

  • 系統控制 – 物件建立日期之類的中繼資料由系統控制,只有 Amazon S3 才可修改此值。

  • 使用者控制 – 另一種系統中繼資料的範例包括為物件所設定的儲存體方案,以及物件是否已啟用伺服器端加密,您可以控制這類系統中繼資料的值。如果您的值區設定為網站,有時您可能會想要將頁面要求重新導向至其他頁面或外部頁面URL。在此情況下,網頁即為您儲存貯體中的物件。Amazon S3 會將頁面重新導向值另存為您可以控制其值的系統中繼資料。

    當您建立物件時,可以設定這些系統中繼資料項目的值,或視需要更新這些值。如需儲存體方案的詳細資訊,請參閱「使用 Amazon S3 儲存體方案」。

    Amazon S3 使用 AWS KMS 金鑰加密您的 Amazon S3 物件。 AWS KMS 僅加密物件資料。檢查總和以及指定的演算法會儲存為物件中繼資料的一部分。若物件要求伺服器端加密,檢查總和會以加密形式儲存。如需伺服器端加密的詳細資訊,請參閱「使用加密來保護資料」。

注意

PUT 要求標頭的大小限制為 8 KB。在 PUT 要求標頭中,系統定義中繼資料的大小限制為 2 KB。系統定義的中繼資料的大小是以每個索引鍵和值的 US-ASCII 編碼為單位的位元組數總和來測量。

下表提供系統定義的中繼資料的清單,並指出您是否可更新這些中繼資料。

名稱 描述 使用者是否可以修改值?
Date 目前的日期與時間。
Cache-Control 用於指定快取政策的一般標頭欄位。
Content-Disposition 物件表示資訊。
Content-Length 物件大小 (位元組)。
Content-Type 物件的類型。
Last-Modified

物件建立日期或上次修改日期,以最近者為準。對於分段上傳,物件建立日期是指啟動分段上傳的日期。

ETag 代表物件特定版本的實體標籤 (ETag)。對於未以多部分上傳的形式上傳,而且使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密未加密或加密的物件,這ETag是MD5資料的摘要。
x-amz-server-side-encryption 表示是否已為物件啟用伺服器端加密的標頭,以及該加密是使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 還是使用 Amazon S3 受管加密金鑰 (SSE-S3)。如需詳細資訊,請參閱「使用伺服器端加密保護資料」。
x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, x-amz-checksum-sha256 包含物件檢查總和或摘要的標題。根據您指示 Amazon S3 使用的檢查總和演算法,最多可以一次設定其中一個標頭。如需選擇檢查總和演算法的詳細資訊,請參閱「檢查物件完整性」。
x-amz-version-id 物件版本控制。當您啟用儲存貯體的版本控制時,Amazon S3 會將版本 ID 指派給已新增至儲存貯體的物件。如需詳細資訊,請參閱「在 S3 儲存貯體中使用版本控制」。
x-amz-delete-marker 指出物件是否為刪除標記的布林值標記。此標記僅用於已啟用版本控制的版本控制,
x-amz-storage-class 用於存放物件的儲存體方案。如需詳細資訊,請參閱「使用 Amazon S3 儲存體方案」。
x-amz-website-redirect-location 將關聯物件的要求重新導向至相同值區中的另一個物件或外部物件的標頭URL。如需詳細資訊,請參閱「(選用) 配置網頁重新導向」。
x-amz-server-side-encryption-aws-kms-key-id 標頭,指出用來加密物件之 AWS KMS 對稱加密KMS金鑰的 ID。只有當 x-amz-server-side-encryption 標題存在且具有 aws:kms 值的時候,才會使用此標題。
x-amz-server-side-encryption-customer-algorithm 標頭,指出是否已啟用使用客戶提供的加密金鑰 (SSE-C) 進行伺服器端加密。如需詳細資訊,請參閱「搭配客戶提供的金鑰 (SSE-C) 使用伺服器端加密」。
x-amz-tagging 物件的標籤集。標籤集必須編碼為URL查詢參數。

使用者定義的物件中繼資料

您也可以在上傳物件時,將中繼資料指派給物件。您可以在傳送 PUTPOST 要求來建立物件時,以名稱/值 (金鑰/值) 對的形式提供這項選用資訊。使用上載物件時 RESTAPI,必須x-amz-meta-以選擇性的使用者定義中繼資料名稱開頭,才能與其他HTTP標頭區分開來。當您使用擷取物件時 RESTAPI,會傳回此前置詞。當您使用上載物件時 SOAPAPI,不需要前置詞。當您使用擷取物件時 SOAPAPI,會移除前置詞,不論API您使用哪一個上載物件。

注意

SOAP支持超過HTTP已棄用,但SOAP仍然可以使用HTTPS。不支援新的 Amazon S3 功能SOAP。建議您使用RESTAPI或SOAP,而不是使用 AWS SDKs.

透過擷取中繼資料時 RESTAPI,Amazon S3 會將具有相同名稱 (忽略大小寫) 的標頭合併到逗號分隔的清單中。如果某些中繼資料包含無法列印的字元,就不會傳回。反之,傳回的會是 x-amz-missing-meta 標頭,其值為無法列印的中繼資料項目數。該 HeadObject 動作從一個物件擷取中繼資料,而不傳回物件本身。如果您只對物件的中繼資料感興趣,此操作非常有用。若要使用 HEAD,您必須具有物件的 READ 存取權。如需詳細資訊,請參閱 Amazon 簡易儲存服務API參考HeadObject中的。

使用者定義的中繼資料是一組金鑰/值對。Amazon S3 會以小寫存放使用者定義的中繼資料金鑰。

Amazon S3 會允許在您的中繼資料值中有任意 Unicode 字元。

為避免出現這些中繼資料值的問題,在使用SOAP或以瀏覽器為基礎的上傳時,您應遵守使用 US-ASCII 字元REST和 UTF -8。POST

在中繼資料值中使用非美式ASCII字元時,系統會檢查提供的 Unicode 字串是否有非美式字元。ASCII這樣的標頭的值在存儲和編碼之前按照 RFC2047 年進行字符解碼,以使它們在返回之前的郵件安全。RFC如果字串僅包含美國ASCII字元,則會依原樣顯示。

以下是範例。

PUT /Key HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
注意

PUT 要求標頭的大小限制為 8 KB。在 PUT 要求標頭中,使用者定義中繼資料的大小限制為 2 KB。使用者定義中繼資料的大小是透過每個索引鍵和值的 UTF -8 編碼中的位元組數總和來測量。

如需透過建立物件複本、修改它以及取代舊物件或建立新版本來變更上傳之後物件的中繼資料的相關資訊,請參閱 在 Amazon S3 主控台中編輯物件中繼資料