本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用刪除標記
Amazon S3 中的刪除標記是簡單 DELETE
請求中所指定版本控制物件的預留位置 (或標記)。簡單 DELETE
請求是指未指定版本 ID 的請求。因為物件位在已啟用版本控制的儲存貯體中,所以未刪除物件。不過,刪除標記會讓 Amazon S3 顯示如同該物件已刪除的狀態。您可以在刪除標記上使用 Amazon S3 API DELETE
呼叫。若要這樣做,您必須使用具有適當許可的 AWS Identity and Access Management (IAM) 使用者或角色來提出DELETE
請求。
刪除標記就像任何其他物件一樣,會有金鑰名稱 (或金鑰) 與版本 ID。不過,刪除標記與其他物件的差異如下:
-
刪除標記沒有任何相關聯的資料。
-
刪除標記不會與存取控制清單 (ACL) 值相關聯。
-
如果您發出刪除標記的
GET
請求,GET
請求不會擷取任何內容,因為刪除標記沒有資料。具體來說,當您的GET
請求未指定versionId
時,您會收到 404(找不到)錯誤。
刪除標記會累算在 Amazon S3 中因儲存而收取的最低費用中。刪除標記的儲存大小等於刪除標記的金鑰名稱大小。金鑰名稱是一連串的 Unicode 字元。金鑰名稱的 UTF-8 編碼會將 1 到 4 個位元組的儲存空間新增至名稱中每個字元的儲存貯體。刪除標記會存放在 S3 標準儲存類別中。
如果您想要了解您有多少個刪除標記以及存放它們的儲存類別,則可以使用 Amazon S3 Storage Lens。如需詳細資訊,請參閱 使用 Amazon S3 Storage Lens 評估儲存活動和使用量 和 Amazon S3 Storage Lens 指標詞彙表。
如需金鑰名稱的詳細資訊,請參閱「命名 Amazon S3 物件」。如需刪除刪除標記的資訊,請參閱「管理刪除標記」。
只有 Amazon S3 才能建立刪除標記,而且只要您對啟用或暫停版本控制的儲存貯體中的物件傳送 DeleteObject
要求,就會這麼做。DELETE
請求中所指定的物件實際上並不會刪除。相反地,刪除標記會成為物件的目前版本 物件的金鑰名稱 (或金鑰) 會成為刪除標記的金鑰。
如果您未在請求中指定 versionId
而取得物件,且其目前版本是刪除標記,則 Amazon S3 會回應以下內容:
-
404 (找不到) 錯誤
-
回應標頭
x-amz-delete-marker: true
如果您在請求中指定 versionId
而取得物件,且指定的版本是刪除標記,則 Amazon S3 會回應以下內容:
-
405 (不允許的方法) 錯誤
-
回應標頭
x-amz-delete-marker: true
-
回應標頭
Last-Modified: timestamp
(僅在使用 HeadObject or GetObject API 操作時)
x-amz-delete-marker: true
回應標頭會告訴您所存取的物件是刪除標記。此回應標頭永遠不會傳回 false
,因為當值為 false
時,物件的目前或指定版本不是刪除標記。
Last-Modified
回應標頭會提供刪除標記的建立時間。
下圖顯示目前版本為刪除標記的物件上的 GetObject
API 呼叫回應 404 (找不到) 錯誤,且回應標頭包含 x-amz-delete-marker: true
的情形。

如果您在請求中指定 versionId
來對物件進行 GetObject
呼叫,且指定的版本是刪除標記,Amazon S3 會回應 405 (方法不允許) 錯誤,且回應標頭包含 x-amz-delete-marker: true
和 Last-Modified: timestamp
。

列出刪除標記 (以及其他版本的物件) 的唯一方式是在 versions
要求中使用 ListObjectVersions 子資源。下圖顯示 ListObjectsV2 或 ListObjects 請求不會傳回其目前版本是刪除標記的物件。
