本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
列出已啟用版本控制之儲存貯體中的物件
本節提供列出已啟用版本控制之儲存貯體中物件版本的範例。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=
您可以使用其他要求參數來擷取物件之所有版本的子集。如需詳細資訊,請參閱 Amazon 簡易儲存服務API參考GET Bucket中的。
範例 — 在截斷回應時擷取其他物件清單
如果可在 GET
要求中傳回的物件數目超過 max-keys
的值,則回應會包含 <isTruncated>true</isTruncated>
,並包含滿足要求但未傳回的第一個金鑰 (在 NextKeyMarker
中) 與第一個版本 ID (在 NextVersionIdMarker
中)。您可以使用這些傳回的值作為後續要求中的開始位置,以擷取可滿足 GET
要求的其他物件。
使用下列程序可從儲存貯體中擷取可滿足原始 GET Bucket versions
要求的其他物件。如需key-marker
、、和的詳細資訊 version-id-marker
NextKeyMarker
NextVersionIdMarker
,請參閱 Amazon 簡單儲存服務API參考GET
Bucket中的。
以下是滿足原始 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
的詳細資訊,請參閱《AWS CLI 命令參考》中的 list-object-versions。