

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

# 使用 S3 版本控制保留多個版本的物件
<a name="Versioning"></a>

在 Amazon S3 中使用版本控制是在相同儲存貯體中保留多個物件版本的一種方式。您可以使用 S3 版本控制功能來保留、擷取和恢復在儲存貯體中所存放每個物件的各個版本。透過版本控制，您就可以更輕鬆地復原失誤的使用者動作和故障的應用程式。啟用儲存貯體的版本控制後，如果 Amazon S3 同時接收對同一物件的多個寫入要求，則會存放所有物件。

啟用版本控制的儲存貯體可讓您復原意外刪除或覆寫的物件。例如，如果您刪除某個物件，Amazon S3 會將刪除標記插入到該物件，而不是永久移除它。刪除標記會成為物件的目前版本。如果您覆寫物件，則會在儲存貯體中產生新的物件版本。您一律可以還原舊版本。如需詳細資訊，請參閱「[刪除啟用版本控制功能之儲存貯體中的物件](DeletingObjectVersions.md)」。

儲存貯體預設停用 S3 版本控制，您必須明確啟用它。如需詳細資訊，請參閱「[在儲存貯體上啟用版本控制](manage-versioning-examples.md)」。

**注意**  
SOAP API 不支援 S3 版本控制。HTTP 上的 SOAP 支援已淘汰，但仍可透過 HTTPS 取得。SOAP 不支援新的 Amazon S3 功能。
標準 Amazon S3 費率適用於所存放和傳送物件的每個版本。物件的每個版本都是整個物件，而不只是與舊版本的差異。因此，如果您的所存放物件有三個版本，則會向您收取三個物件的費用。

## 未使用版本控制、已啟用版本控制和暫停版本控制的儲存貯體
<a name="versioning-states"></a>

儲存貯體可以是以下三種狀態之一：
+ 未進行版本控制 (預設)
+ 已啟用版本控制
+ 已暫停版本控制

您可以在儲存貯體層級啟用和暫停版本控制。儲存貯體的版本控制一旦啟用，就無法再回復為未使用版本控制狀態。不過，您可以*暫停*儲存貯體的版本控制。

版本控制狀態會套用至該儲存貯體中的所有 (絕不會是一些) 物件。當您在儲存貯體中啟用版本控制時，所有新物件都會進行版本控制，並提供唯一的版本 ID。在啟用版本控制時已存在於儲存貯體中的物件，之後將*始終*進行版本控制，並在未來要求修改時提供唯一的版本 ID。注意下列事項：
+ 在您設定版本控制狀態擁有版本 ID `null` 前，先儲存物件於儲存貯體中。當您啟用版本控制時，儲存貯體中的現有物件不會變更。Amazon S3 在未來請求中如何處理物件的方式會改變。如需詳細資訊，請參閱「[使用已啟用版本控制之儲存貯體中的物件](manage-objects-versioned-bucket.md)」。
+ 儲存貯體擁有者 (或任何具有適當許可的使用者) 可以暫停版本控制，以停止產生物件版本。當您暫停版本控制時，儲存貯體中的現有物件不會變更。Amazon S3 在未來請求中如何處理物件的方式會改變。如需詳細資訊，請參閱「[使用暫停版本控制之儲存貯體中的物件](VersionSuspendedBehavior.md)」。

## 搭配使用 S3 版本控制與 S3 生命週期
<a name="versioning-lifecycle"></a>

若要自訂您的資料保留方法及控制儲存體成本，請將物件版本控制搭配 S3 生命週期使用。如需詳細資訊，請參閱[管理物件的生命週期](object-lifecycle-mgmt.md)。如需有關使用 AWS 管理主控台、、 AWS CLI AWS SDKs 或 REST API 建立 S3 生命週期組態的資訊，請參閱 [設定儲存貯體的 S3 生命週期組態](how-to-set-lifecycle-configuration-intro.md)。

**重要**  
如果您在未使用版本控制的儲存貯體中有物件過期生命週期組態，而且想要在啟用版本控制時保持相同的永久刪除行為，您必須新增非目前的過期組態。非目前的過期生命週期組態，會管理啟用版本控制之儲存貯體中非目前物件版本的刪除。(已啟用版本控制的儲存貯體會維持一個目前的物件版本，以及零或多個非目前的物件版本。) 如需詳細資訊，請參閱[設定儲存貯體的 S3 生命週期組態](how-to-set-lifecycle-configuration-intro.md)。

如需使用 S3 版本控制的相關資訊，請參閱下列主題。

**Topics**
+ [未使用版本控制、已啟用版本控制和暫停版本控制的儲存貯體](#versioning-states)
+ [搭配使用 S3 版本控制與 S3 生命週期](#versioning-lifecycle)
+ [S3 版本控制的運作方式](versioning-workflows.md)
+ [在儲存貯體上啟用版本控制](manage-versioning-examples.md)
+ [設定 MFA Delete](MultiFactorAuthenticationDelete.md)
+ [使用已啟用版本控制之儲存貯體中的物件](manage-objects-versioned-bucket.md)
+ [使用暫停版本控制之儲存貯體中的物件](VersionSuspendedBehavior.md)
+ [針對版本控制進行疑難排解](troubleshooting-versioning.md)