本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
列出已啟用版本控制之儲存貯體中的物件
本節提供列出已啟用版本控制之儲存貯體中物件版本的範例。Amazon S3 會將物件版本資訊存放至與儲存貯體有關聯的 versions 子資源。如需詳細資訊,請參閱儲存貯體組態選項。若要列出已啟用版本控制之儲存貯體,您需要 ListBucketVersions
許可。
請依照下列步驟使用 Amazon S3 主控台查看某個物件的不同版本。
查看物件的多個版本
登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在 Buckets (儲存貯體) 清單中,選擇包含該物件的儲存貯體名稱。
-
若要查看儲存貯體中的物件版本清單,請選擇 Show versions (顯示版本) 切換開關。
針對每個物件版本,主控台會顯示唯一版本 ID、物件版本建立日期與時間,以及其他屬性。(設定版本控制狀態之前儲存貯體中所存放的物件會有 null 的版本 ID。)
若只要列出物件而不顯示版本,請選擇 List versions (列出版本) 切換開關。
您也可以在主控台的物件概觀面板中檢視、下載及刪除物件版本。如需詳細資訊,請參閱在 Amazon S3 主控台中檢視物件屬性。
注意
若要存取超過 300 個版本的物件版本,您必須使用 AWS CLI或物件的 URL。
重要
只有在刪除最新版 (目前版本) 的物件時,才能取消刪除物件。您無法取消刪除已刪除的舊版物件。如需詳細資訊,請參閱使用 S3 版本控制保留多個版本的物件。
本節中的範例會示範如何從已啟用版本控制之儲存貯體中,擷取物件清單。除非您指定較小的數值,否則每個請求最多可回傳 1,000 個版本。如果儲存貯體含有比限制數量更多的版本,則您需要傳送一連串可擷取所有版本清單的要求。在「頁面」中傳回結果的過程稱為分頁。
為了解說分頁運作方式,這些範例會限制每一個物件版本的回應。在擷取結果的第一頁,每個範例都會檢查以確定是否截斷了版本清單。如果是,則該範例則會繼續擷取頁面,直到擷取到所有版本。
注意
以下範例還適用於尚未啟用版本控制的儲存貯體,或者尚沒有獨立版本的物件。在這些情況下,Amazon S3 會傳回版本 ID 為 null
的物件清單。
如需使用其他 的詳細資訊 AWS SDKs,請參閱AWS 開發人員中心
範例 — 列出儲存貯體中的所有物件版本
若要列出儲存貯體中物件的所有版本,請在 versions
要求中使用 GET Bucket
子資源。Amazon S3 最多能擷取 1,000 個物件,每個物件版本完全算為一個物件。因此,如果儲存貯體包含兩個金鑰 (例如,photo.gif
與 picture.jpg
),而且第一個金鑰有 990 個版本,第二個金鑰有 400 個版本,單一要求將會擷取 photo.gif
的全部 990 個版本,並且只會擷取 picture.jpg
的最新 10 個版本。
Amazon S3 會依存放順序來傳回物件版本,而最近存放的物件會先傳回。
在 GET Bucket
要求中,包含 versions
子資源。
GET /?versions HTTP/1.1 Host:
bucketName
.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 +0000 Authorization: AWSAKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
範例 — 擷取索引鍵的所有版本
若要擷取物件版本子集,您可以使用 GET
Bucket
的請求參數。如需詳細資訊,請參閱 GET Bucket.
-
將
prefix
參數設為您想要擷取之物件的索引鍵。 -
使用
GET Bucket
子資源與versions
來傳送prefix
要求。GET /?versions&prefix=objectName HTTP/1.1
範例 — 使用字首擷取物件
下列範例會擷取其金鑰或開頭為 myObject
的物件。
GET /?versions&prefix=myObject HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
您可以使用其他要求參數來擷取物件之所有版本的子集。如需詳細資訊,請參閱 GET Bucket 在 Amazon Simple Storage Service API參考 中。
範例 — 在截斷回應時擷取其他物件清單
如果可在 GET
要求中傳回的物件數目超過 max-keys
的值,則回應會包含 <isTruncated>true</isTruncated>
,並包含滿足要求但未傳回的第一個金鑰 (在 NextKeyMarker
中) 與第一個版本 ID (在 NextVersionIdMarker
中)。您可以使用這些傳回的值作為後續要求中的開始位置,以擷取可滿足 GET
要求的其他物件。
使用下列程序可從儲存貯體中擷取可滿足原始 GET Bucket versions
要求的其他物件。如需 key-marker
、version-id-marker
、 NextKeyMarker
和 的詳細資訊NextVersionIdMarker
,請參閱 GET
Bucket 在 Amazon Simple Storage Service API參考 中。
以下是滿足原始 GET
請求的其他回應:
-
將
key-marker
的值設為前一個回應的NextKeyMarker
中所傳回的金鑰。 -
將
version-id-marker
的值設為前一個回應的NextVersionIdMarker
中所傳回的版本 ID。 -
使用
GET Bucket versions
與key-marker
來傳送version-id-marker
要求。
範例 — 擷取開頭為所指定索引鍵與版本 ID 的物件
GET /?versions&key-marker=myObject&version-id-marker=298459348571 HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
以下命令會傳回有關儲存貯體中所有版本的物件的中繼資料。
aws s3api list-object-versions --bucket
amzn-s3-demo-bucket1
如需詳細資訊,list-object-versions
請參閱 list-object-versions 在 AWS CLI 命令參考 中。