

# 为 S3 on Outposts 桶管理 S3 版本控制
<a name="S3OutpostsManagingVersioning"></a>

启用后，S3 版本控制功能将对象的多个不同副本保存到同一个桶中。对于 Outpost 桶中存储的每个对象，您可以使用 S3 版本控制功能来保留、检索和还原其每个版本。S3 版本控制功能可帮助您从用户意外操作和应用程序故障中恢复。

Amazon S3 on Outposts 桶具有三种版本控制状态：
+ **Unversioned**（不受版本控制）- 如果您从未在桶上启用或暂停过 S3 版本控制，则桶处于不受版本控制状态，并且不返回 S3 版本控制状态。有关 S3 版本控制的更多信息，请参阅[为 S3 on Outposts 桶管理 S3 版本控制](#S3OutpostsManagingVersioning)。
+ **Enabled**（已启用）- 为桶中的对象启用 S3 版本控制。添加到桶的所有对象都将收到唯一的版本 ID。启用版本控制时存在于存储桶中的对象的版本 ID 为`null`。如果使用其他操作修改这些（或任何其他）对象，例如 [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)，则新对象将获得唯一的版本 ID。
+ **Suspended**（暂停）- 对桶中的对象暂停 S3 版本控制。暂停版本控制后添加到桶的所有对象都将收到版本 ID `null`。有关更多信息，请参阅《Amazon S3 用户指南》**中的[将对象添加到已暂停版本控制的存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AddingObjectstoVersionSuspendedBuckets.html)。

在对 S3 on Outposts 桶启用 S3 版本控制后，它将无法返回到不受版本控制状态。但是，您可以暂停版本控制。有关 S3 版本控制的更多信息，请参阅[为 S3 on Outposts 桶管理 S3 版本控制](#S3OutpostsManagingVersioning)。

对于桶中的每个对象，您都有一个当前版本以及零个或零个以上的非当前版本。为了降低存储成本，您可以将桶 S3 生命周期规则配置为使非当前版本在指定时间段后过期。有关更多信息，请参阅 [为 Amazon S3 on Outposts 桶创建和管理生命周期配置](S3OutpostsLifecycleManaging.md)。

以下示例显示如何使用 AWS 管理控制台 和 AWS Command Line Interface（AWS CLI）对现有 S3 on Outposts 桶启用或暂停版本控制。要创建启用了 S3 版本控制的桶，请参阅[创建 S3 on Outposts 存储桶](S3OutpostsCreateBucket.md)。

**注意**  
创建存储桶的 AWS 账户 拥有该存储桶，也是唯一可以向其提交操作的账户。存储桶具有配置属性，如 Outpost、标签、默认加密和访问点设置。访问点设置包括用于访问存储桶中对象的 Virtual Private Cloud (VPC) 和访问点策略以及其他元数据。有关更多信息，请参阅 [S3 on Outposts 规范](S3OnOutpostsRestrictionsLimitations.md#S3OnOutpostsSpecifications)。

## 使用 S3 控制台
<a name="S3OutpostsVersioningConsole"></a>

**编辑桶的 S3 版本控制设置**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Outposts buckets**（Outposts 桶）。

1. 选择要为其启用 S3 版本控制的 Outposts 桶。

1. 选择**属性**选项卡。

1. 在**存储桶版本控制**下，请选择**编辑**。

1. 通过选择以下选项之一，编辑桶的 S3 版本控制设置：
   + 要暂停 S3 版本控制并停止创建新的对象版本，请选择 **Suspend**（暂停）。
   + 要启用 S3 版本控制并保存每个对象的多个不同副本，请选择 **Enable**（启用）。

1. 选择**保存更改**。

## 使用 AWS CLI
<a name="S3OutpostsVersioningCLI"></a>

要使用 AWS CLI 对桶启用或暂停 S3 版本控制，请使用 `put-bucket-versioning` 命令，如以下示例所示。要使用这些示例，请将每个 `user input placeholder` 替换为您自己的信息。

有关更多信息，请参阅《AWS CLI 参考》**中的 [put-bucket-versioning](https://docs.aws.amazon.com/cli/latest/reference/s3control/put-bucket-versioning.html)。

**Example ：启用 S3 版本控制**  

```
aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket --versioning-configuration Status=Enabled
```

**Example ：暂停 S3 版本控制**  

```
aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket --versioning-configuration Status=Suspended
```