

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

# 使用刪除標記
<a name="DeleteMarker"></a>

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 監控您的儲存活動和用量](storage_lens.md)及[Amazon S3 Storage Lens 指標詞彙表](storage_lens_metrics_glossary.md)。

如需金鑰名稱的詳細資訊，請參閱「[命名 Amazon S3 物件](object-keys.md)」。如需刪除刪除標記的資訊，請參閱「[管理刪除標記](ManagingDelMarkers.md)」。

只有 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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) or [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) API 操作時)

`x-amz-delete-marker: true` 回應標頭會告訴您所存取的物件是刪除標記。此回應標頭永遠不會傳回 `false`，因為當值為 `false` 時，物件的目前或指定版本不是刪除標記。

`Last-Modified` 回應標頭會提供刪除標記的建立時間。

下圖顯示目前版本為刪除標記的物件上的 `GetObject` API 呼叫回應 404 (找不到) 錯誤，且回應標頭包含 `x-amz-delete-marker: true` 的情形。

![\[圖中顯示對刪除標記的 GetObject 呼叫傳回 404 (找不到) 錯誤。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound.png)


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

![\[顯示對刪除標記的 GetObject 呼叫傳回 405 (不允許的方法) 錯誤的圖例。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound_405.png)


即使已覆寫，刪除標記仍會保留在您的物件版本中。列出刪除標記 (以及其他版本的物件) 的唯一方式是使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) 請求。您可以在 AWS 管理主控台 中提出此請求，方法是列出一般用途儲存貯體中的物件，然後選取**顯示版本**。如需詳細資訊，請參閱[列出已啟用版本控制之儲存貯體中的物件](list-obj-version-enabled-bucket.md)。

下圖顯示 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 或 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) 請求不會傳回其目前版本是刪除標記的物件。

![\[圖例顯示 ListObjectsV2 或 ListObjects 呼叫不傳回任何刪除標記的情形。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_GETBucketwithDeleteMarkers.png)
