

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

# 使用暫停版本控制之儲存貯體中的物件
<a name="VersionSuspendedBehavior"></a>

在 Amazon S3 中，您可以暫停版本控制，以停止產生儲存貯體中相同物件的新版本。在您只希望在儲存貯體中保留一個物件版本時，您可能會這樣做。或者，可能因為您不想產生多個版本的費用。

當您暫停版本控制時，儲存貯體中的現有物件不會變更。Amazon S3 在未來請求中如何處理物件的方式會改變。本節主題說明暫停版本控制之儲存貯體中的各種物件操作，包括新增、擷取和刪除物件。

如需 S3 版本控制的詳細資訊，請參閱「[使用 S3 版本控制保留多個版本的物件](Versioning.md)」。如需擷取物件版本的詳細資訊，請參閱[從啟用版本控制的儲存貯體擷取物件版本](RetrievingObjectVersions.md)。

**Topics**
+ [將物件新增至暫停版本控制的儲存貯體](AddingObjectstoVersionSuspendedBuckets.md)
+ [從暫停版本控制的儲存貯體中擷取物件](RetrievingObjectsfromVersioningSuspendedBuckets.md)
+ [刪除暫停版本控制之儲存貯體中的物件](DeletingObjectsfromVersioningSuspendedBuckets.md)

# 將物件新增至暫停版本控制的儲存貯體
<a name="AddingObjectstoVersionSuspendedBuckets"></a>

您可以在 Amazon S3 中將物件新增至已暫停版本控制的儲存貯體，以建立含 null 版本 ID 的物件，或覆寫任何具有相符版本 ID 的物件版本。

當您在儲存貯體上暫停版本控制後，Amazon S3 便會自動將 `null` 版本 ID 新增至此後儲存貯體中存放的每個後續物件 (使用 `PUT`、`POST` 或 `CopyObject`)。

下圖顯示將物件新增至暫停版本控制的儲存貯體時，Amazon S3 如何將版本 ID `null` 新增至物件。

![\[Amazon S3 將 null 的版本 ID 新增至物件圖形。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended.png)


如果 null 版本已在儲存貯體中，而且您新增另一個具有相同金鑰的物件，則新增的物件會覆寫原始 null 版本。

如果儲存貯體中具有已啟用版本控制的物件，則您 `PUT` 的版本會變成物件的目前版本。下圖顯示如何將物件新增至包含已使用版本控制之物件的儲存貯體而不會覆寫已在儲存貯體中的物件。

在此情況下，111111 版本已在儲存貯體中。Amazon S3 會將 null 版本 ID 連接至所新增的物件，並將物件存放在儲存貯體中。不會覆寫 111111 版本。

![\[Amazon S3 將 null 的版本 ID 新增至物件，而不覆寫 111111 版圖形。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended3.png)


如果儲存貯體中已有 null 版本，則會覆寫 null 版本，如下圖所示。

![\[Amazon S3 將 null 的版本 ID 新增至物件，同時覆寫原始內容圖形。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended4.png)


雖然 `PUT` 前後之 null 版本的鍵與版本 ID (`null`) 相同，但是一開始存放在儲存貯體中 null 版本的內容會取代為 `PUT` 到儲存貯體中的物件內容。

# 從暫停版本控制的儲存貯體中擷取物件
<a name="RetrievingObjectsfromVersioningSuspendedBuckets"></a>

不論是否已啟用儲存貯體的版本控制，`GET Object` 要求都會傳回物件的目前版本。下圖顯示簡單 `GET` 如何傳回物件的目前版本。

![\[顯示簡單 GET 如何傳回物件目前版本的圖例。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_GET_suspended.png)


# 刪除暫停版本控制之儲存貯體中的物件
<a name="DeletingObjectsfromVersioningSuspendedBuckets"></a>

您可以刪除暫停版本控制之儲存貯體中的物件，以移除具有 null 版本 ID 的物件。

如果某個儲存貯體的版本控制處於暫停狀態，則 `DELETE` 要求：
+ 只能移除版本 ID 為 `null` 的物件。
+ 如果儲存貯體中沒有物件的 null 版本，則不會移除任何項目。
+ 將刪除標記插入至儲存貯體。

如果儲存貯體版本控制已暫停，操作會移除具有 null `versionId` 的物件。如果版本 ID 存在，Amazon S3 會插入刪除標記，該標記會成為物件的目前版本。下圖顯示簡單的 `DELETE` 如何移除 null 版本，而且 Amazon S3 會在其位置插入刪除標記，而非 `null` 版本 ID。

![\[圖例顯示可移除具有 NULL 版本 ID 之物件的簡單刪除作業。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspended.png)


若要永久刪除具有 `versionId` 的物件，您必須在請求中包含物件的 `versionId`。因為刪除標記不包含任何內容，所以在刪除標記取代版本時，您將遺失該 `null` 版本的內容。

下圖顯示沒有 null 版本的儲存貯體。在此情況下，`DELETE` 不會移除任何項目。相反地，Amazon S3 只會插入刪除標記。

![\[顯示刪除標記插入的圖例。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspendedNoNull.png)


即使在暫停版本控制的儲存貯體中，儲存貯體擁有者也可以透過在`DELETE`請求中包含版本 ID 來永久刪除指定的版本，除非已明確拒絕`DELETE`請求的許可。例如，若要拒絕刪除任何具有`null`版本 ID 的物件，您必須明確拒絕 `s3:DeleteObject`和 `s3:DeleteObjectVersions`許可。

下圖顯示刪除所指定的物件版本會永久移除該物件版本。只有儲存貯體擁有者才能刪除所指定的物件版本。

![\[顯示使用指定版本 ID 永久刪除物件的圖例。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled2.png)
