使用物件中繼資料 - 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 Digest。
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 金鑰的識別碼。只有當 x-amz-server-side-encryption 標題存在且具有 aws:kms 值的時候,才會使用此標題。
x-amz-server-side-encryption-customer-algorithm 指出是否已啟用由客戶提供加密金鑰的伺服器端加密 (SSE-C) 的標題。如需詳細資訊,請參閱「搭配客戶提供的金鑰 (SSE-C) 使用伺服器端加密」。
x-amz-tagging 物件的標籤集。標籤集必須編碼為 URL 查詢參數。

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

您也可以在上傳物件時,將中繼資料指派給物件。您可以在傳送 PUTPOST 要求來建立物件時,以名稱/值 (金鑰/值) 對的形式提供這項選用資訊。當您使用 REST API 上傳物件時,選用的使用者定義中繼資料名稱必須以 x-amz-meta- 開頭,以便與其他 HTTP 標頭有所區別。當您使用 REST API 擷取物件時,會傳回此字首。當您使用 SOAP API 上傳物件時,不需要此字首。當您使用 SOAP API 擷取物件時,不論用於上傳物件的 API 為何,都會移除此字首。

注意

HTTP 上的 SOAP 支援已淘汰,但仍可透過 HTTPS 取得 SOAP。SOAP 不支援新的 Amazon S3 功能。我們建議您使用 REST API 或 AWS 開發套件,而不是使用 SOAP。

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

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

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

為了避免有關呈現這些中繼資料值的問題,使用 REST 時應該遵從使用 US-ASCII 字元,以及使用 SOAP 或透過 POST 的瀏覽器式上傳時應該遵從使用 UTF-8。

在中繼資料值中使用非 US-ASCII 字元時,會檢查提供的 Unicode 字串是否有非 US-ASCII 字元。這些標題的值是在儲存之前依據 RFC 2047 僅需解碼,然後依據 RFC 2047 進行編碼,以便在傳回之前使其能夠安全地以電子郵件寄送。如果字串只包含 US-ASCII 字元,則會依原樣呈現。

以下是範例。

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

PUT 要求標頭的大小限制為 8 KB。在 PUT 要求標頭中,使用者定義中繼資料的大小限制為 2 KB。測量使用者定義中繼資料大小的方式,是透過計算每個金鑰和值之 UTF-8 編碼中的位元組數目加總。

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