

# 将对象添加到已启用版本控制的存储桶
<a name="AddingObjectstoVersioningEnabledBuckets"></a>

您在存储桶上启用了版本控制后，Amazon S3 会自动将唯一的版本 ID 添加到存储在该存储桶中的每个对象（使用 `PUT`、`POST` 或 `CopyObject`）。

下图显示当将对象添加到已启用版本控制的存储桶时，Amazon S3 会向其添加唯一的版本 ID。

![\[图中显示了在启用了版本控制的存储桶中放置对象时，为该对象添加了唯一版本 ID。\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/images/versioning_PUT_versionEnabled.png)


**注意**  
Amazon S3 分配的版本 ID 值是 URL 安全的（可以包含在 URI 中）。

有关版本控制的更多信息，请参阅[使用 S3 版本控制保留对象的多个版本](Versioning.md)。您可以使用控制台、AWS SDK 和 REST API 将对象版本添加到启用版本控制的存储桶中。

## 使用 控制台
<a name="add-obj-versioning-enabled-bucket-console"></a>

有关说明，请参阅[上传对象](upload-objects.md)。

## 使用 AWS SDK
<a name="add-obj-versioning-enabled-bucket-sdk"></a>

有关使用适用于 Java、.NET 和 PHP 的 AWS SDK 上传对象的示例，请参阅 [上传对象](upload-objects.md)。在无版本控制和启用版本控制的存储桶中上传对象的示例是相同的，只是对于启用版本控制的存储桶，Amazon S3 会分配版本号。否则，版本号为空。

有关使用其他 AWS SDK 的信息，请参阅 [AWS 开发人员中心](https://aws.amazon.com/code/)。

## 使用 REST API
<a name="add-obj-versioning-enabled-bucket-rest"></a>

**要将对象添加到已启用版本控制的存储桶**

1. 使用 `PutBucketVersioning` 请求在存储桶上启用版本控制。

   有关更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)。

1. 发送 `PUT`、`POST` 或 `CopyObject` 请求，以在存储桶中存储对象。

当您将对象添加到已启用版本控制的存储桶时，Amazon S3 将在 `x-amz-version-id` 响应标头中返回该对象的版本 ID，如下面的示例所示。

```
1. x-amz-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY
```