

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon S3 示例 AWS CLI
<a name="cli_2_s3_code_examples"></a>

以下代码示例向您展示了如何在 Amazon S3 中使用来执行操作和实现常见场景。 AWS Command Line Interface 

*操作*是大型程序的代码摘录，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `abort-multipart-upload`
<a name="s3_AbortMultipartUpload_cli_2_topic"></a>

以下代码示例演示了如何使用 `abort-multipart-upload`。

**AWS CLI**  
**中止指定的分段上传**  
以下 `abort-multipart-upload` 命令中止存储桶 `amzn-s3-demo-bucket` 中键 `multipart/01` 的分段上传：  

```
aws s3api abort-multipart-upload \
    --bucket amzn-s3-demo-bucket \
    --key multipart/01 \
    --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
```
此命令所需的上传 ID 由 `create-multipart-upload` 输出，也可以使用 `list-multipart-uploads` 进行检索。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[AbortMultipartUpload](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/abort-multipart-upload.html)*中的。

### `complete-multipart-upload`
<a name="s3_CompleteMultipartUpload_cli_2_topic"></a>

以下代码示例演示了如何使用 `complete-multipart-upload`。

**AWS CLI**  
以下命令完成存储桶 `amzn-s3-demo-bucket` 中密钥 `multipart/01` 的分段上传：  

```
aws s3api complete-multipart-upload --multipart-upload file://mpustruct --bucket amzn-s3-demo-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
```
此命令所需的上传 ID 由 `create-multipart-upload` 输出，也可以使用 `list-multipart-uploads` 进行检索。  
上述命令中的分段上传选项采用 JSON 结构，用于描述分段上传中应重新组合成完整文件的各个部分。在此示例中，`file://` 前缀用于从名为 `mpustruct` 的本地文件夹中的文件加载 JSON 结构。  
mpustruct：  

```
{
  "Parts": [
    {
      "ETag": "e868e0f4719e394144ef36531ee6824c",
      "PartNumber": 1
    },
    {
      "ETag": "6bb2b12753d66fe86da4998aa33fffb0",
      "PartNumber": 2
    },
    {
      "ETag": "d0a0112e841abec9c9ec83406f0159c8",
      "PartNumber": 3
    }
  ]
}
```
每次使用`upload-part`命令上传分段时，都会输出每个分段的 ETag 值，也可以通过调用来检索，`list-parts`或者通过取每个分段的 MD5 校验和来计算。  
输出：  

```
{
    "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"",
    "Bucket": "amzn-s3-demo-bucket",
    "Location": "https://amzn-s3-demo-bucket.s3.amazonaws.com/multipart%2F01",
    "Key": "multipart/01"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CompleteMultipartUpload](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/complete-multipart-upload.html)*中的。

### `copy-object`
<a name="s3_CopyObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `copy-object`。

**AWS CLI**  
以下命令将对象从 `bucket-1` 复制到 `bucket-2`：  

```
aws s3api copy-object --copy-source bucket-1/test.txt --key test.txt --bucket bucket-2
```
输出：  

```
{
    "CopyObjectResult": {
        "LastModified": "2015-11-10T01:07:25.000Z",
        "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\""
    },
    "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CopyObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html)*中的。

### `cp`
<a name="s3_Cp_cli_2_topic"></a>

以下代码示例演示了如何使用 `cp`。

**AWS CLI**  
**示例 1：将本地文件复制到 S3**  
以下 `cp` 命令会将单个文件复制到指定的存储桶和密钥：  

```
aws s3 cp test.txt s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 2：将本地文件复制到 S3，并设置到期日期**  
以下 `cp` 命令会将单个文件复制到指定的存储桶和密钥，并在指定的 ISO 8601 时间戳到期：  

```
aws s3 cp test.txt s3://amzn-s3-demo-bucket/test2.txt \
    --expires 2014-10-01T20:30:00Z
```
输出：  

```
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 3：将文件从 S3 复制到 S3**  
以下 `cp` 命令会将单个 S3 对象复制到指定的存储桶和密钥：  

```
aws s3 cp s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 4：将 S3 对象复制到本地文件**  
以下 `cp` 命令会将单个对象复制到指定的本地文件：  

```
aws s3 cp s3://amzn-s3-demo-bucket/test.txt test2.txt
```
输出：  

```
download: s3://amzn-s3-demo-bucket/test.txt to test2.txt
```
**示例 5：将 S3 对象从一个存储桶复制到另一个存储桶**  
以下 `cp` 命令会将单个对象复制到指定的存储桶，同时保留其原始名称：  

```
aws s3 cp s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket2/
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt
```
**示例 6：将 S3 对象递归复制到本地目录**  
当与参数 `--recursive` 一起传递时，以下 `cp` 命令会将指定前缀和存储桶下的所有对象递归复制到指定目录。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `test2.txt`：  

```
aws s3 cp s3://amzn-s3-demo-bucket . \
    --recursive
```
输出：  

```
download: s3://amzn-s3-demo-bucket/test1.txt to test1.txt
download: s3://amzn-s3-demo-bucket/test2.txt to test2.txt
```
**示例 7：将本地文件递归复制到 S3**  
当与参数 `--recursive` 一起传递时，以下 `cp` 命令会将指定目录下的所有文件递归复制到指定的存储桶和前缀，同时使用 `--exclude` 参数将某些文件排除在外。在此示例中，目录 `myDir` 中包含文件 `test1.txt` 和 `test2.jpg`：  

```
aws s3 cp myDir s3://amzn-s3-demo-bucket/ \
    --recursive \
    --exclude "*.jpg"
```
输出：  

```
upload: myDir/test1.txt to s3://amzn-s3-demo-bucket/test1.txt
```
**示例 8：将 S3 对象递归复制到另一个存储桶**  
当与参数 `--recursive` 一起传递时，以下 `cp` 命令会将指定存储桶下的所有对象递归复制到另一个存储桶，同时使用 `--exclude` 参数将某些对象排除在外。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `another/test1.txt`：  

```
aws s3 cp s3://amzn-s3-demo-bucket/ s3://amzn-s3-demo-bucket2/ \
    --recursive \
    --exclude "another/*"
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt
```
您可以结合 `--exclude` 和 `--include` 选项，仅复制与模式匹配的对象，不复制其他对象：  

```
aws s3 cp s3://amzn-s3-demo-bucket/logs/ s3://amzn-s3-demo-bucket2/logs/ \
    --recursive \
    --exclude "*" \
    --include "*.log"
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/logs/test/test.log to s3://amzn-s3-demo-bucket2/logs/test/test.log
copy: s3://amzn-s3-demo-bucket/logs/test3.log to s3://amzn-s3-demo-bucket2/logs/test3.log
```
**示例 9：复制 S3 对象时设置访问控制列表（ACL）**  
以下 `cp` 命令会将单个对象复制到指定的存储桶和密钥，同时将 ACL 设置为 `public-read-write`：  

```
aws s3 cp s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket/test2.txt \
    --acl public-read-write
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
请注意，如果使用 `--acl` 选项，请确保所有相关的 IAM 策略都包含 `"s3:PutObjectAcl"` 操作：  

```
aws iam get-user-policy \
    --user-name myuser \
    --policy-name mypolicy
```
输出：  

```
{
    "UserName": "myuser",
    "PolicyName": "mypolicy",
    "PolicyDocument": {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Action": [
                    "s3:PutObject",
                    "s3:PutObjectAcl"
                ],
                "Resource": [
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"
                ],
                "Effect": "Allow",
                "Sid": "Stmt1234567891234"
            }
        ]
    }
}
```
**示例 10：为 S3 对象授予权限**  
以下 `cp` 命令说明如何使用 `--grants` 选项向所有通过 URI 标识的用户授予读取权限，并向通过 Canonical ID 标识的特定用户授予完全控制权限：  

```
aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
输出：  

```
upload: file.txt to s3://amzn-s3-demo-bucket/file.txt
```
**示例 11：将本地文件流上传到 S3**  
PowerShell 可能会更改管道输入的编码或向管道输入添加 CRLF。  
以下 `cp` 命令会将本地文件流从标准输入上传到指定的存储桶和密钥：  

```
aws s3 cp - s3://amzn-s3-demo-bucket/stream.txt
```
**示例 12：将大于 50GB 的本地文件流上传到 S3**  
以下 `cp` 命令会将 51GB 的本地文件流从标准输入上传到指定的存储桶和密钥。必须提供 `--expected-size` 选项，否则当达到 10,000 的默认分段限制时，上传可能会失败：  

```
aws s3 cp - s3://amzn-s3-demo-bucket/stream.txt --expected-size 54760833024
```
**示例 13：将 S3 对象下载为本地文件流**  
PowerShell 可能会更改管道输出或重定向输出的编码或添加 CRLF。  
以下 `cp` 命令会将 S3 对象作为流下载到本地标准输出。以流形式下载目前与 `--recursive` 参数不兼容：  

```
aws s3 cp s3://amzn-s3-demo-bucket/stream.txt -
```
**示例 14：上传到 S3 接入点**  
以下 `cp` 命令会将单个文件（`mydoc.txt`）上传到密钥（`mykey`）处的接入点（`myaccesspoint`）：  

```
aws s3 cp mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
输出：  

```
upload: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
**示例 15：从 S3 接入点下载**  
以下 `cp` 命令会将单个对象（`mykey`）从接入点（`myaccesspoint`）下载到本地文件（`mydoc.txt`）：  

```
aws s3 cp s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey mydoc.txt
```
输出：  

```
download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/cp.html)。

### `create-bucket`
<a name="s3_CreateBucket_cli_2_topic"></a>

以下代码示例演示了如何使用 `create-bucket`。

**AWS CLI**  
**示例 1：创建存储桶**  
以下 `create-bucket` 示例创建一个名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region us-east-1
```
输出：  

```
{
    "Location": "/amzn-s3-demo-bucket"
}
```
有关更多信息，请参阅《Amazon S3 用户指南》**中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。  
**示例 2：创建带有强制拥有者的存储桶**  
以下 `create-bucket` 示例创建一个名为 `amzn-s3-demo-bucket` 的存储桶，该存储桶对于 S3 对象所有权使用强制存储桶拥有者设置。  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region us-east-1 \
    --object-ownership BucketOwnerEnforced
```
输出：  

```
{
    "Location": "/amzn-s3-demo-bucket"
}
```
有关更多信息，请参阅 *Amazon S3 用户指南 ACLs*中的[控制对象所有权和禁用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)。  
**示例 3：在“us-east-1”区域之外创建存储桶**  
以下 `create-bucket` 示例在 `eu-west-1` 区域中创建名为 `amzn-s3-demo-bucket` 的存储桶。`us-east-1` 之外的区域需要指定相应的 `LocationConstraint` 才能在所需区域创建存储桶。  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region eu-west-1 \
    --create-bucket-configuration LocationConstraint=eu-west-1
```
输出：  

```
{
    "Location": "http://amzn-s3-demo-bucket.s3.amazonaws.com/"
}
```
有关更多信息，请参阅《Amazon S3 用户指南》**中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateBucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)*中的。

### `create-multipart-upload`
<a name="s3_CreateMultipartUpload_cli_2_topic"></a>

以下代码示例演示了如何使用 `create-multipart-upload`。

**AWS CLI**  
以下命令在存储桶 `amzn-s3-demo-bucket` 中创建带有密钥 `multipart/01` 的分段上传：  

```
aws s3api create-multipart-upload --bucket amzn-s3-demo-bucket --key 'multipart/01'
```
输出：  

```
{
    "Bucket": "amzn-s3-demo-bucket",
    "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R",
    "Key": "multipart/01"
}
```
完成的文件在存储桶 `amzn-s3-demo-bucket` 中名为 `multipart` 文件夹中将命名为 `01`。保存上传 ID、密钥和存储桶名称以供 `upload-part` 命令使用。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateMultipartUpload](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-multipart-upload.html)*中的。

### `delete-bucket-analytics-configuration`
<a name="s3_DeleteBucketAnalyticsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-analytics-configuration`。

**AWS CLI**  
**删除存储桶的分析配置**  
以下 `delete-bucket-analytics-configuration` 示例移除指定存储桶和 ID 的分析配置。  

```
aws s3api delete-bucket-analytics-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 1
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketAnalyticsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-analytics-configuration.html)*中的。

### `delete-bucket-cors`
<a name="s3_DeleteBucketCors_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-cors`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除跨源资源共享配置：  

```
aws s3api delete-bucket-cors --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketCors](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-cors.html)*中的。

### `delete-bucket-encryption`
<a name="s3_DeleteBucketEncryption_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-encryption`。

**AWS CLI**  
**删除存储桶的服务器端加密配置**  
以下 `delete-bucket-encryption` 示例删除指定存储桶的服务器端加密配置。  

```
aws s3api delete-bucket-encryption \
    --bucket amzn-s3-demo-bucket
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketEncryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-encryption.html)*中的。

### `delete-bucket-intelligent-tiering-configuration`
<a name="s3_DeleteBucketIntelligentTieringConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-intelligent-tiering-configuration`。

**AWS CLI**  
**移除存储桶上的 S3 智能分层配置**  
以下`delete-bucket-intelligent-tiering-configuration`示例删除了存储桶上名 ExampleConfig为的 S3 智能分层配置。  

```
aws s3api delete-bucket-intelligent-tiering-configuration \
    --bucket amzn-s3-demo-bucket \
    --id ExampleConfig
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon S3 用户指南》**中的[使用 S3 智能分层](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-intelligent-tiering.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketIntelligentTieringConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-intelligent-tiering-configuration.html)*中的。

### `delete-bucket-inventory-configuration`
<a name="s3_DeleteBucketInventoryConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-inventory-configuration`。

**AWS CLI**  
**删除存储桶的清单配置**  
以下 `delete-bucket-inventory-configuration` 示例删除指定存储桶的 ID 为 `1` 的清单配置。  

```
aws s3api delete-bucket-inventory-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 1
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketInventoryConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-inventory-configuration.html)*中的。

### `delete-bucket-lifecycle`
<a name="s3_DeleteBucketLifecycle_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-lifecycle`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除生命周期配置：  

```
aws s3api delete-bucket-lifecycle --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketLifecycle](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-lifecycle.html)*中的。

### `delete-bucket-metrics-configuration`
<a name="s3_DeleteBucketMetricsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-metrics-configuration`。

**AWS CLI**  
**删除存储桶的指标配置**  
以下 `delete-bucket-metrics-configuration` 示例移除指定存储桶和 ID 的指标配置。  

```
aws s3api delete-bucket-metrics-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 123
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketMetricsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-metrics-configuration.html)*中的。

### `delete-bucket-ownership-controls`
<a name="s3_DeleteBucketOwnershipControls_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-ownership-controls`。

**AWS CLI**  
**移除存储桶的存储桶所有权设置**  
以下 `delete-bucket-ownership-controls` 示例移除存储桶的存储桶所有权设置。  

```
aws s3api delete-bucket-ownership-controls \
    --bucket amzn-s3-demo-bucket
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon S3 用户指南》**中的[设置现有存储桶的对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketOwnershipControls](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-ownership-controls.html)*中的。

### `delete-bucket-policy`
<a name="s3_DeleteBucketPolicy_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-policy`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除存储桶策略：  

```
aws s3api delete-bucket-policy --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-policy.html)*中的。

### `delete-bucket-replication`
<a name="s3_DeleteBucketReplication_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-replication`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除复制配置：  

```
aws s3api delete-bucket-replication --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketReplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-replication.html)*中的。

### `delete-bucket-tagging`
<a name="s3_DeleteBucketTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-tagging`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除标记配置：  

```
aws s3api delete-bucket-tagging --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-tagging.html)*中的。

### `delete-bucket-website`
<a name="s3_DeleteBucketWebsite_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket-website`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除网站配置：  

```
aws s3api delete-bucket-website --bucket amzn-s3-demo-bucket
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucketWebsite](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-website.html)*中的。

### `delete-bucket`
<a name="s3_DeleteBucket_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-bucket`。

**AWS CLI**  
以下命令删除名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api delete-bucket --bucket amzn-s3-demo-bucket --region us-east-1
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteBucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket.html)*中的。

### `delete-object-tagging`
<a name="s3_DeleteObjectTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-object-tagging`。

**AWS CLI**  
**删除对象的标签集**  
以下 `delete-object-tagging` 示例从对象 `doc1.rtf` 中删除带有指定键的标签。  

```
aws s3api delete-object-tagging \
    --bucket amzn-s3-demo-bucket \
    --key doc1.rtf
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteObjectTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object-tagging.html)*中的。

### `delete-object`
<a name="s3_DeleteObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-object`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除名为 `test.txt` 的对象：  

```
aws s3api delete-object --bucket amzn-s3-demo-bucket --key test.txt
```
如果启用了存储桶版本控制，则输出将包含删除标记的版本 ID：  

```
{
  "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq",
  "DeleteMarker": true
}
```
有关删除对象的更多信息，请参阅《Amazon S3 开发人员指南》**中的“删除对象”。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html)*中的。

### `delete-objects`
<a name="s3_DeleteObjects_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-objects`。

**AWS CLI**  
以下命令从名为 `amzn-s3-demo-bucket` 的存储桶中删除对象：  

```
aws s3api delete-objects --bucket amzn-s3-demo-bucket --delete file://delete.json
```
`delete.json` 是当前目录中指定要删除的对象的 JSON 文档：  

```
{
  "Objects": [
    {
      "Key": "test1.txt"
    }
  ],
  "Quiet": false
}
```
输出：  

```
{
    "Deleted": [
        {
            "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU",
            "Key": "test1.txt",
            "DeleteMarker": true
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteObjects](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html)*中的。

### `delete-public-access-block`
<a name="s3_DeletePublicAccessBlock_cli_2_topic"></a>

以下代码示例演示了如何使用 `delete-public-access-block`。

**AWS CLI**  
**删除存储桶的屏蔽公共访问权限配置**  
以下 `delete-public-access-block` 示例移除指定存储桶上的屏蔽公共访问权限配置。  

```
aws s3api delete-public-access-block \
    --bucket amzn-s3-demo-bucket
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeletePublicAccessBlock](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-public-access-block.html)*中的。

### `get-bucket-accelerate-configuration`
<a name="s3_GetBucketAccelerateConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-accelerate-configuration`。

**AWS CLI**  
**检索存储桶的加速配置**  
以下 `get-bucket-accelerate-configuration` 示例检索指定存储桶的加速配置。  

```
aws s3api get-bucket-accelerate-configuration \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Status": "Enabled"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketAccelerateConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-accelerate-configuration.html)*中的。

### `get-bucket-acl`
<a name="s3_GetBucketAcl_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-acl`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的访问控制列表：  

```
aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Owner": {
        "DisplayName": "my-username",
        "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32"
    },
    "Grants": [
        {
            "Grantee": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32"
            },
            "Permission": "FULL_CONTROL"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-acl.html)*中的。

### `get-bucket-analytics-configuration`
<a name="s3_GetBucketAnalyticsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-analytics-configuration`。

**AWS CLI**  
**检索具有特定 ID 的存储桶的分析配置**  
以下 `get-bucket-analytics-configuration` 示例显示了指定存储桶和 ID 的分析配置。  

```
aws s3api get-bucket-analytics-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 1
```
输出：  

```
{
    "AnalyticsConfiguration": {
        "StorageClassAnalysis": {},
        "Id": "1"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketAnalyticsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-analytics-configuration.html)*中的。

### `get-bucket-cors`
<a name="s3_GetBucketCors_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-cors`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的跨源资源共享配置：  

```
aws s3api get-bucket-cors --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "CORSRules": [
        {
            "AllowedHeaders": [
                "*"
            ],
            "ExposeHeaders": [
                "x-amz-server-side-encryption"
            ],
            "AllowedMethods": [
                "PUT",
                "POST",
                "DELETE"
            ],
            "MaxAgeSeconds": 3000,
            "AllowedOrigins": [
                "http://www.example.com"
            ]
        },
        {
            "AllowedHeaders": [
                "Authorization"
            ],
            "MaxAgeSeconds": 3000,
            "AllowedMethods": [
                "GET"
            ],
            "AllowedOrigins": [
                "*"
            ]
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketCors](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-cors.html)*中的。

### `get-bucket-encryption`
<a name="s3_GetBucketEncryption_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-encryption`。

**AWS CLI**  
**检索存储桶的服务器端加密配置**  
以下 `get-bucket-encryption` 示例检索存储桶 `amzn-s3-demo-bucket` 的服务器端加密配置。  

```
aws s3api get-bucket-encryption \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "ServerSideEncryptionConfiguration": {
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "AES256"
                }
            }
        ]
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketEncryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-encryption.html)*中的。

### `get-bucket-intelligent-tiering-configuration`
<a name="s3_GetBucketIntelligentTieringConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-intelligent-tiering-configuration`。

**AWS CLI**  
**检索存储桶上的 S3 智能分层配置**  
以下`get-bucket-intelligent-tiering-configuration`示例检索存储桶上名 ExampleConfig为的 S3 智能分层配置。  

```
aws s3api get-bucket-intelligent-tiering-configuration \
    --bucket amzn-s3-demo-bucket \
    --id ExampleConfig
```
输出：  

```
{
    "IntelligentTieringConfiguration": {
        "Id": "ExampleConfig2",
        "Filter": {
            "Prefix": "images"
        },
        "Status": "Enabled",
        "Tierings": [
            {
                "Days": 90,
                "AccessTier": "ARCHIVE_ACCESS"
            },
            {
                "Days": 180,
                "AccessTier": "DEEP_ARCHIVE_ACCESS"
            }
        ]
    }
}
```
有关更多信息，请参阅《Amazon S3 用户指南》**中的[使用 S3 智能分层](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-intelligent-tiering.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketIntelligentTieringConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-intelligent-tiering-configuration.html)*中的。

### `get-bucket-inventory-configuration`
<a name="s3_GetBucketInventoryConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-inventory-configuration`。

**AWS CLI**  
**检索存储桶的清单配置**  
以下 `get-bucket-inventory-configuration` 示例检索 ID 为 `1` 的指定存储桶的清单配置。  

```
aws s3api get-bucket-inventory-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 1
```
输出：  

```
{
    "InventoryConfiguration": {
        "IsEnabled": true,
        "Destination": {
            "S3BucketDestination": {
                "Format": "ORC",
                "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
                "AccountId": "123456789012"
            }
        },
        "IncludedObjectVersions": "Current",
        "Id": "1",
        "Schedule": {
            "Frequency": "Weekly"
        }
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketInventoryConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-inventory-configuration.html)*中的。

### `get-bucket-lifecycle-configuration`
<a name="s3_GetBucketLifecycleConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-lifecycle-configuration`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的生命周期配置：  

```
aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Rules": [
        {
            "ID": "Move rotated logs to Glacier",
            "Prefix": "rotated/",
            "Status": "Enabled",
            "Transitions": [
                {
                    "Date": "2015-11-10T00:00:00.000Z",
                    "StorageClass": "GLACIER"
                }
            ]
        },
        {
            "Status": "Enabled",
            "Prefix": "",
            "NoncurrentVersionTransitions": [
                {
                    "NoncurrentDays": 0,
                    "StorageClass": "GLACIER"
                }
            ],
            "ID": "Move old versions to Glacier"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketLifecycleConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-lifecycle-configuration.html)*中的。

### `get-bucket-lifecycle`
<a name="s3_GetBucketLifecycle_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-lifecycle`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的生命周期配置：  

```
aws s3api get-bucket-lifecycle --bucket amzn-s3-demo-bucket
```
输出：  

```
{
  "Rules": [
    {
      "ID": "Move to Glacier after sixty days (objects in logs/2015/)",
      "Prefix": "logs/2015/",
      "Status": "Enabled",
      "Transition": {
        "Days": 60,
        "StorageClass": "GLACIER"
      }
    },
    {
      "Expiration": {
        "Date": "2016-01-01T00:00:00.000Z"
      },
      "ID": "Delete 2014 logs in 2016.",
      "Prefix": "logs/2014/",
      "Status": "Enabled"
    }
  ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketLifecycle](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-lifecycle.html)*中的。

### `get-bucket-location`
<a name="s3_GetBucketLocation_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-location`。

**AWS CLI**  
如果存在约束条件，则以下命令会检索名为 `amzn-s3-demo-bucket` 的存储桶的位置约束：  

```
aws s3api get-bucket-location --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "LocationConstraint": "us-west-2"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketLocation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-location.html)*中的。

### `get-bucket-logging`
<a name="s3_GetBucketLogging_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-logging`。

**AWS CLI**  
**检索存储桶的日志记录状态**  
以下 `get-bucket-logging` 示例检索指定存储桶的日志记录状态。  

```
aws s3api get-bucket-logging \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "LoggingEnabled": {
        "TargetPrefix": "",
        "TargetBucket": "amzn-s3-demo-bucket-logs"
          }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketLogging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-logging.html)*中的。

### `get-bucket-metrics-configuration`
<a name="s3_GetBucketMetricsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-metrics-configuration`。

**AWS CLI**  
**检索具有特定 ID 的存储桶的指标配置**  
以下 `get-bucket-metrics-configuration` 示例显示了指定存储桶和 ID 的指标配置。  

```
aws s3api get-bucket-metrics-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 123
```
输出：  

```
{
    "MetricsConfiguration": {
        "Filter": {
            "Prefix": "logs"
        },
        "Id": "123"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketMetricsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-metrics-configuration.html)*中的。

### `get-bucket-notification-configuration`
<a name="s3_GetBucketNotificationConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-notification-configuration`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的通知配置：  

```
aws s3api get-bucket-notification-configuration --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "TopicConfigurations": [
        {
            "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl",
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic",
            "Events": [
                "s3:ObjectCreated:*"
            ]
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketNotificationConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-notification-configuration.html)*中的。

### `get-bucket-notification`
<a name="s3_GetBucketNotification_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-notification`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的通知配置：  

```
aws s3api get-bucket-notification --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "TopicConfiguration": {
        "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic",
        "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl",
        "Event": "s3:ObjectCreated:*",
        "Events": [
            "s3:ObjectCreated:*"
        ]
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketNotification](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-notification.html)*中的。

### `get-bucket-ownership-controls`
<a name="s3_GetBucketOwnershipControls_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-ownership-controls`。

**AWS CLI**  
**检索存储桶的存储桶所有权设置**  
以下 `get-bucket-ownership-controls` 示例检索存储桶的存储桶所有权设置。  

```
aws s3api get-bucket-ownership-controls \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "OwnershipControls": {
        "Rules": [
            {
                "ObjectOwnership": "BucketOwnerEnforced"
            }
        ]
    }
}
```
有关更多信息，请参阅《Amazon S3 用户指南》**中的[查看 S3 存储桶的对象所有权设置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-retrieving.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketOwnershipControls](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-ownership-controls.html)*中的。

### `get-bucket-policy-status`
<a name="s3_GetBucketPolicyStatus_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-policy-status`。

**AWS CLI**  
**检索存储桶的策略状态，此状态指示存储桶是否为公有存储桶**  
以下 `get-bucket-policy-status` 示例检索存储桶 `amzn-s3-demo-bucket` 的策略状态。  

```
aws s3api get-bucket-policy-status \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "PolicyStatus": {
        "IsPublic": false
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketPolicyStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy-status.html)*中的。

### `get-bucket-policy`
<a name="s3_GetBucketPolicy_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-policy`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的存储桶策略：  

```
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/secret/*\"}]}"
}
```
获取并放置存储桶策略 以下示例演示了如何下载 Amazon S3 存储桶策略，修改文件，然后使用 `put-bucket-policy` 来应用修改后的存储桶策略。要将存储桶策略下载到文件中，您可以运行：  

```
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket --query Policy --output text > policy.json
```
然后，您可以根据需要修改 `policy.json` 文件。最后，您可以通过运行以下对象，将此修改后的策略应用回 S3 存储桶：  
`policy.json` 文件（根据需要）。最后，您可以通过运行以下对象，将此修改后的策略应用回 S3 存储桶：  
 文件（根据需要）。最后，您可以通过运行以下对象，将此修改后的策略应用回 S3 存储桶：  

```
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html)*中的。

### `get-bucket-replication`
<a name="s3_GetBucketReplication_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-replication`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的复制配置：  

```
aws s3api get-bucket-replication --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "ReplicationConfiguration": {
        "Rules": [
            {
                "Status": "Enabled",
                "Prefix": "",
                "Destination": {
                    "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket-backup",
                    "StorageClass": "STANDARD"
                },
                "ID": "ZmUwNzE4ZmQ4tMjVhOS00MTlkLOGI4NDkzZTIWJjNTUtYTA1"
            }
        ],
        "Role": "arn:aws:iam::123456789012:role/s3-replication-role"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketReplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-replication.html)*中的。

### `get-bucket-request-payment`
<a name="s3_GetBucketRequestPayment_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-request-payment`。

**AWS CLI**  
**检索存储桶的请求付款配置**  
以下 `get-bucket-request-payment` 示例检索指定存储桶的申请方付款配置。  

```
aws s3api get-bucket-request-payment \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Payer": "BucketOwner"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketRequestPayment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-request-payment.html)*中的。

### `get-bucket-tagging`
<a name="s3_GetBucketTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-tagging`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的标记配置：  

```
aws s3api get-bucket-tagging --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "TagSet": [
        {
            "Value": "marketing",
            "Key": "organization"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-tagging.html)*中的。

### `get-bucket-versioning`
<a name="s3_GetBucketVersioning_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-versioning`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的版本控制配置：  

```
aws s3api get-bucket-versioning --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Status": "Enabled"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketVersioning](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-versioning.html)*中的。

### `get-bucket-website`
<a name="s3_GetBucketWebsite_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-bucket-website`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶的静态网站配置：  

```
aws s3api get-bucket-website --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "IndexDocument": {
        "Suffix": "index.html"
    },
    "ErrorDocument": {
        "Key": "error.html"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetBucketWebsite](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-website.html)*中的。

### `get-object-acl`
<a name="s3_GetObjectAcl_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-acl`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶中对象的访问控制列表：  

```
aws s3api get-object-acl --bucket amzn-s3-demo-bucket --key index.html
```
输出：  

```
{
    "Owner": {
        "DisplayName": "my-username",
        "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32"
    },
    "Grants": [
        {
            "Grantee": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32"
            },
            "Permission": "FULL_CONTROL"
        },
        {
            "Grantee": {
                "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
            },
            "Permission": "READ"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-acl.html)*中的。

### `get-object-attributes`
<a name="s3_GetObjectAttributes_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-attributes`。

**AWS CLI**  
**从对象检索元数据而不返回对象本身**  
以下 `get-object-attributes` 示例从对象 `doc1.rtf` 检索元数据。  

```
aws s3api get-object-attributes \
    --bucket amzn-s3-demo-bucket \
    --key doc1.rtf \
    --object-attributes "StorageClass" "ETag" "ObjectSize"
```
输出：  

```
{
    "LastModified": "2022-03-15T19:37:31+00:00",
    "VersionId": "IuCPjXTDzHNfldAuitVBIKJpF2p1fg4P",
    "ETag": "b662d79adeb7c8d787ea7eafb9ef6207",
    "StorageClass": "STANDARD",
    "ObjectSize": 405
}
```
有关更多信息，请参阅 Amazon S3 API 参考[GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)中的。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-attributes.html)*中的。

### `get-object-legal-hold`
<a name="s3_GetObjectLegalHold_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-legal-hold`。

**AWS CLI**  
**检索对象的法定保留状态**  
以下 `get-object-legal-hold` 示例检索指定对象的法定保留状态。  

```
aws s3api get-object-legal-hold \
    --bucket amzn-s3-demo-bucket-with-object-lock \
    --key doc1.rtf
```
输出：  

```
{
    "LegalHold": {
        "Status": "ON"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectLegalHold](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-legal-hold.html)*中的。

### `get-object-lock-configuration`
<a name="s3_GetObjectLockConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-lock-configuration`。

**AWS CLI**  
**检索存储桶的对象锁定配置**  
以下 `get-object-lock-configuration` 示例检索指定存储桶的对象锁定配置。  

```
aws s3api get-object-lock-configuration \
    --bucket amzn-s3-demo-bucket-with-object-lock
```
输出：  

```
{
    "ObjectLockConfiguration": {
        "ObjectLockEnabled": "Enabled",
        "Rule": {
            "DefaultRetention": {
                "Mode": "COMPLIANCE",
                "Days": 50
            }
        }
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectLockConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-lock-configuration.html)*中的。

### `get-object-retention`
<a name="s3_GetObjectRetention_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-retention`。

**AWS CLI**  
**检索对象的对象保留配置**  
以下 `get-object-retention` 示例检索指定对象的对象保留配置。  

```
aws s3api get-object-retention \
    --bucket amzn-s3-demo-bucket-with-object-lock \
    --key doc1.rtf
```
输出：  

```
{
    "Retention": {
        "Mode": "GOVERNANCE",
        "RetainUntilDate": "2025-01-01T00:00:00.000Z"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectRetention](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-retention.html)*中的。

### `get-object-tagging`
<a name="s3_GetObjectTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-tagging`。

**AWS CLI**  
**检索附加到对象的标签**  
以下 `get-object-tagging` 示例从指定的对象中检索指定键的值。  

```
aws s3api get-object-tagging \
    --bucket amzn-s3-demo-bucket \
    --key doc1.rtf
```
输出：  

```
{
    "TagSet": [
        {
            "Value": "confidential",
            "Key": "designation"
        }
    ]
}
```
以下 `get-object-tagging` 示例尝试检索没有标签的对象 `doc2.rtf` 的标签集。  

```
aws s3api get-object-tagging \
    --bucket amzn-s3-demo-bucket \
    --key doc2.rtf
```
输出：  

```
{
    "TagSet": []
}
```
以下 `get-object-tagging` 示例检索具有多个标签的对象 `doc3.rtf` 的标签集。  

```
aws s3api get-object-tagging \
    --bucket amzn-s3-demo-bucket \
    --key doc3.rtf
```
输出：  

```
{
    "TagSet": [
        {
            "Value": "confidential",
            "Key": "designation"
        },
        {
            "Value": "finance",
            "Key": "department"
        },
        {
            "Value": "payroll",
            "Key": "team"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-tagging.html)*中的。

### `get-object-torrent`
<a name="s3_GetObjectTorrent_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object-torrent`。

**AWS CLI**  
以下命令为名为 `amzn-s3-demo-bucket` 的存储桶中的对象创建种子文件：  

```
aws s3api get-object-torrent --bucket amzn-s3-demo-bucket --key large-video-file.mp4 large-video-file.torrent
```
种子文件保存在本地的当前文件夹中。请注意，指定输出 filename（`large-video-file.torrent`）时没有选项名称，并且必须是命令中的最后一个参数。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObjectTorrent](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-torrent.html)*中的。

### `get-object`
<a name="s3_GetObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-object`。

**AWS CLI**  
以下示例使用 `get-object` 命令从 Amazon S3 下载对象：  

```
aws s3api get-object --bucket text-content --key dir/my_images.tar.bz2 my_images.tar.bz2
```
请注意，指定 outfile 参数时没有诸如“--outfile”之类的选项名称。输出文件的名称必须是命令中的最后一个参数。  
以下示例演示了如何使用 `--range` 从对象下载特定字节范围。请注意，字节范围需要以“bytes=”为前缀：  

```
aws s3api get-object --bucket text-content --key dir/my_data --range bytes=8888-9999 my_data_range
```
有关检索对象的更多信息，请参阅《Amazon S3 开发人员指南》**中的“获取对象”。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html)*中的。

### `get-public-access-block`
<a name="s3_GetPublicAccessBlock_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-public-access-block`。

**AWS CLI**  
**设置或修改存储桶的屏蔽公共访问权限配置**  
以下 `get-public-access-block` 示例显示了指定存储桶的屏蔽公共访问权限配置。  

```
aws s3api get-public-access-block \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "PublicAccessBlockConfiguration": {
        "IgnorePublicAcls": true,
        "BlockPublicPolicy": true,
        "BlockPublicAcls": true,
        "RestrictPublicBuckets": true
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetPublicAccessBlock](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-public-access-block.html)*中的。

### `head-bucket`
<a name="s3_HeadBucket_cli_2_topic"></a>

以下代码示例演示了如何使用 `head-bucket`。

**AWS CLI**  
以下命令验证对名为 `amzn-s3-demo-bucket` 的存储桶的访问权限：  

```
aws s3api head-bucket --bucket amzn-s3-demo-bucket
```
如果存储桶存在并且您可以访问它，则不返回任何输出。否则，会显示错误消息。例如：  

```
A client error (404) occurred when calling the HeadBucket operation: Not Found
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[HeadBucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-bucket.html)*中的。

### `head-object`
<a name="s3_HeadObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `head-object`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶中对象的元数据：  

```
aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html
```
输出：  

```
{
    "AcceptRanges": "bytes",
    "ContentType": "text/html",
    "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
    "ContentLength": 77,
    "VersionId": "null",
    "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
    "Metadata": {}
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[HeadObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-object.html)*中的。

### `list-bucket-analytics-configurations`
<a name="s3_ListBucketAnalyticsConfigurations_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-bucket-analytics-configurations`。

**AWS CLI**  
**检索存储桶的分析配置列表**  
下面的 `list-bucket-analytics-configurations` 检索指定存储桶的分析配置列表。  

```
aws s3api list-bucket-analytics-configurations \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "AnalyticsConfigurationList": [
        {
            "StorageClassAnalysis": {},
            "Id": "1"
        }
    ],
    "IsTruncated": false
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListBucketAnalyticsConfigurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-bucket-analytics-configurations.html)*中的。

### `list-bucket-intelligent-tiering-configurations`
<a name="s3_ListBucketIntelligentTieringConfigurations_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-bucket-intelligent-tiering-configurations`。

**AWS CLI**  
**检索存储桶上的所有 S3 智能分层配置**  
以下 `list-bucket-intelligent-tiering-configurations` 示例检索存储桶上的所有 S3 智能分层配置。  

```
aws s3api list-bucket-intelligent-tiering-configurations \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "IsTruncated": false,
    "IntelligentTieringConfigurationList": [
        {
            "Id": "ExampleConfig",
            "Filter": {
                "Prefix": "images"
            },
            "Status": "Enabled",
            "Tierings": [
                {
                    "Days": 90,
                    "AccessTier": "ARCHIVE_ACCESS"
                },
                {
                    "Days": 180,
                    "AccessTier": "DEEP_ARCHIVE_ACCESS"
                }
            ]
        },
        {
            "Id": "ExampleConfig2",
            "Status": "Disabled",
            "Tierings": [
                {
                    "Days": 730,
                    "AccessTier": "ARCHIVE_ACCESS"
                }
            ]
        },
        {
            "Id": "ExampleConfig3",
            "Filter": {
                "Tag": {
                    "Key": "documents",
                    "Value": "taxes"
                }
            },
            "Status": "Enabled",
            "Tierings": [
                {
                    "Days": 90,
                    "AccessTier": "ARCHIVE_ACCESS"
                },
                {
                    "Days": 365,
                    "AccessTier": "DEEP_ARCHIVE_ACCESS"
                }
            ]
        }
    ]
}
```
有关更多信息，请参阅《Amazon S3 用户指南》**中的[使用 S3 智能分层](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-intelligent-tiering.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListBucketIntelligentTieringConfigurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-bucket-intelligent-tiering-configurations.html)*中的。

### `list-bucket-inventory-configurations`
<a name="s3_ListBucketInventoryConfigurations_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-bucket-inventory-configurations`。

**AWS CLI**  
**检索存储桶的清单配置列表**  
以下 `list-bucket-inventory-configurations` 示例列出了指定存储桶的清单配置。  

```
aws s3api list-bucket-inventory-configurations \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "InventoryConfigurationList": [
        {
            "IsEnabled": true,
            "Destination": {
                "S3BucketDestination": {
                    "Format": "ORC",
                    "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
                    "AccountId": "123456789012"
                }
            },
            "IncludedObjectVersions": "Current",
            "Id": "1",
            "Schedule": {
                "Frequency": "Weekly"
            }
        },
        {
            "IsEnabled": true,
            "Destination": {
                "S3BucketDestination": {
                    "Format": "CSV",
                    "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket",
                    "AccountId": "123456789012"
                }
            },
            "IncludedObjectVersions": "Current",
            "Id": "2",
            "Schedule": {
                "Frequency": "Daily"
            }
        }
    ],
    "IsTruncated": false
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListBucketInventoryConfigurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-bucket-inventory-configurations.html)*中的。

### `list-bucket-metrics-configurations`
<a name="s3_ListBucketMetricsConfigurations_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-bucket-metrics-configurations`。

**AWS CLI**  
**检索存储桶的指标配置列表**  
以下 `list-bucket-metrics-configurations` 示例检索指定存储桶的指标配置列表。  

```
aws s3api list-bucket-metrics-configurations \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "IsTruncated": false,
    "MetricsConfigurationList": [
        {
            "Filter": {
                "Prefix": "logs"
            },
            "Id": "123"
        },
        {
            "Filter": {
                "Prefix": "tmp"
            },
            "Id": "234"
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListBucketMetricsConfigurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-bucket-metrics-configurations.html)*中的。

### `list-buckets`
<a name="s3_ListBuckets_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-buckets`。

**AWS CLI**  
以下命令使用 `list-buckets` 命令显示所有 Amazon S3 存储桶的名称（跨所有区域）：  

```
aws s3api list-buckets --query "Buckets[].Name"
```
查询选项会筛选 `list-buckets` 的输出，使其范围缩小到仅限存储桶名称。  
有关存储桶的更多信息，请参阅《Amazon S3 开发人员指南》**中的“使用 Amazon S3 存储桶”。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListBuckets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-buckets.html)*中的。

### `list-multipart-uploads`
<a name="s3_ListMultipartUploads_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-multipart-uploads`。

**AWS CLI**  
以下命令列出名为 `amzn-s3-demo-bucket` 的存储桶的所有活动分段上传：  

```
aws s3api list-multipart-uploads --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Uploads": [
        {
            "Initiator": {
                "DisplayName": "username",
                "ID": "arn:aws:iam::0123456789012:user/username"
            },
            "Initiated": "2015-06-02T18:01:30.000Z",
            "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R",
            "StorageClass": "STANDARD",
            "Key": "multipart/01",
            "Owner": {
                "DisplayName": "aws-account-name",
                "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b"
            }
        }
    ],
    "CommonPrefixes": []
}
```
正在进行的分段上传会产生 Amazon S3 存储费用。完成或中止活动分段上传，可将其从您的账户中移除。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListMultipartUploads](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-multipart-uploads.html)*中的。

### `list-object-versions`
<a name="s3_ListObjectVersions_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-object-versions`。

**AWS CLI**  
以下命令检索名为 `amzn-s3-demo-bucket` 的存储桶中对象的版本信息：  

```
aws s3api list-object-versions --bucket amzn-s3-demo-bucket --prefix index.html
```
输出：  

```
{
    "DeleteMarkers": [
        {
            "Owner": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32"
            },
            "IsLatest": true,
            "VersionId": "B2VsEK5saUNNHKcOAJj7hIE86RozToyq",
            "Key": "index.html",
            "LastModified": "2015-11-10T00:57:03.000Z"
        },
        {
            "Owner": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32"
            },
            "IsLatest": false,
            "VersionId": ".FLQEZscLIcfxSq.jsFJ.szUkmng2Yw6",
            "Key": "index.html",
            "LastModified": "2015-11-09T23:32:20.000Z"
        }
    ],
    "Versions": [
        {
            "LastModified": "2015-11-10T00:20:11.000Z",
            "VersionId": "Rb_l2T8UHDkFEwCgJjhlgPOZC0qJ.vpD",
            "ETag": "\"0622528de826c0df5db1258a23b80be5\"",
            "StorageClass": "STANDARD",
            "Key": "index.html",
            "Owner": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32"
            },
            "IsLatest": false,
            "Size": 38
        },
        {
            "LastModified": "2015-11-09T23:26:41.000Z",
            "VersionId": "rasWWGpgk9E4s0LyTJgusGeRQKLVIAFf",
            "ETag": "\"06225825b8028de826c0df5db1a23be5\"",
            "StorageClass": "STANDARD",
            "Key": "index.html",
            "Owner": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32"
            },
            "IsLatest": false,
            "Size": 38
        },
        {
            "LastModified": "2015-11-09T22:50:50.000Z",
            "VersionId": "null",
            "ETag": "\"d1f45267a863c8392e07d24dd592f1b9\"",
            "StorageClass": "STANDARD",
            "Key": "index.html",
            "Owner": {
                "DisplayName": "my-username",
                "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32"
            },
            "IsLatest": false,
            "Size": 533823
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListObjectVersions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-object-versions.html)*中的。

### `list-objects-v2`
<a name="s3_ListObjectsV2_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-objects-v2`。

**AWS CLI**  
**获取存储桶中对象的列表**  
以下 `list-objects-v2` 示例列出了指定存储桶中的对象。  

```
aws s3api list-objects-v2 \
    --bucket amzn-s3-demo-bucket
```
输出：  

```
{
    "Contents": [
        {
            "LastModified": "2019-11-05T23:11:50.000Z",
            "ETag": "\"621503c373607d548b37cff8778d992c\"",
            "StorageClass": "STANDARD",
            "Key": "doc1.rtf",
            "Size": 391
        },
        {
            "LastModified": "2019-11-05T23:11:50.000Z",
            "ETag": "\"a2cecc36ab7c7fe3a71a273b9d45b1b5\"",
            "StorageClass": "STANDARD",
            "Key": "doc2.rtf",
            "Size": 373
        },
        {
            "LastModified": "2019-11-05T23:11:50.000Z",
            "ETag": "\"08210852f65a2e9cb999972539a64d68\"",
            "StorageClass": "STANDARD",
            "Key": "doc3.rtf",
            "Size": 399
        },
        {
            "LastModified": "2019-11-05T23:11:50.000Z",
            "ETag": "\"d1852dd683f404306569471af106988e\"",
            "StorageClass": "STANDARD",
            "Key": "doc4.rtf",
            "Size": 6225
        }
    ]
}
```
+  有关 API 的详细信息，请参阅《*AWS CLI 命令参考*》中的 [ListObjectsV2](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-objects-v2.html)。

### `list-objects`
<a name="s3_ListObjects_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-objects`。

**AWS CLI**  
以下示例使用 `list-objects` 命令显示指定存储桶中所有对象的名称：  

```
aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'
```
该示例使用 `--query` 参数筛选 `list-objects` 的输出，使其范围缩小到每个对象的键值和大小  
有关对象的更多信息，请参阅《Amazon S3 开发人员指南》**中的“使用 Amazon S3 对象”。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListObjects](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-objects.html)*中的。

### `list-parts`
<a name="s3_ListParts_cli_2_topic"></a>

以下代码示例演示了如何使用 `list-parts`。

**AWS CLI**  
以下命令列出存储桶 `amzn-s3-demo-bucket` 中，使用密钥 `multipart/01` 的分段上传中已上传的所有部分：  

```
aws s3api list-parts --bucket amzn-s3-demo-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
```
输出：  

```
{
    "Owner": {
        "DisplayName": "aws-account-name",
        "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b"
    },
    "Initiator": {
        "DisplayName": "username",
        "ID": "arn:aws:iam::0123456789012:user/username"
    },
    "Parts": [
        {
            "LastModified": "2015-06-02T18:07:35.000Z",
            "PartNumber": 1,
            "ETag": "\"e868e0f4719e394144ef36531ee6824c\"",
            "Size": 5242880
        },
        {
            "LastModified": "2015-06-02T18:07:42.000Z",
            "PartNumber": 2,
            "ETag": "\"6bb2b12753d66fe86da4998aa33fffb0\"",
            "Size": 5242880
        },
        {
            "LastModified": "2015-06-02T18:07:47.000Z",
            "PartNumber": 3,
            "ETag": "\"d0a0112e841abec9c9ec83406f0159c8\"",
            "Size": 5242880
        }
    ],
    "StorageClass": "STANDARD"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListParts](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-parts.html)*中的。

### `ls`
<a name="s3_Ls_cli_2_topic"></a>

以下代码示例演示了如何使用 `ls`。

**AWS CLI**  
**示例 1：列出用户拥有的所有存储桶**  
以下 `ls` 命令列出用户拥有的所有存储桶。在此示例中，用户拥有存储桶 `amzn-s3-demo-bucket` 和 `amzn-s3-demo-bucket2`。时间戳是存储桶的创建日期，以计算机的时区显示。对存储桶进行更改（例如编辑存储桶策略）时，此日期可能会更改。请注意，如果路径参数 `<S3Uri>` 使用了 `s3://`，则也会列出所有存储桶。  

```
aws s3 ls
```
输出：  

```
2013-07-11 17:08:50 amzn-s3-demo-bucket
2013-07-24 14:55:44 amzn-s3-demo-bucket2
```
**示例 2：列出存储桶中的所有前缀和对象**  
以下 `ls` 命令列出指定存储桶和前缀下的对象和常用前缀。在此示例中，用户拥有带有对象 `test.txt` 和 `somePrefix/test.txt` 的存储桶 `amzn-s3-demo-bucket`。`LastWriteTime` 和 `Length` 是任意值。请注意，由于 `ls` 命令与本地文件系统没有交互，因此不需要使用 `s3://` URI 方案来解决歧义，可以省略。  

```
aws s3 ls s3://amzn-s3-demo-bucket
```
输出：  

```
                           PRE somePrefix/
2013-07-25 17:06:27         88 test.txt
```
**示例 3：列出特定存储桶和前缀中的所有前缀和对象**  
以下 `ls` 命令列出指定存储桶和前缀下的对象和常用前缀。但是，指定的存储桶和前缀下没有对象，也没有常用前缀。  

```
aws s3 ls s3://amzn-s3-demo-bucket/noExistPrefix
```
输出：  

```
None
```
**示例 4：递归列出存储桶中的所有前缀和对象**  
以下 `ls` 命令将递归列出存储桶中的对象。输出中将不再显示 `PRE dirname/`，而是按顺序列出存储桶中的所有内容。  

```
aws s3 ls s3://amzn-s3-demo-bucket \
    --recursive
```
输出：  

```
2013-09-02 21:37:53         10 a.txt
2013-09-02 21:37:53    2863288 foo.zip
2013-09-02 21:32:57         23 foo/bar/.baz/a
2013-09-02 21:32:58         41 foo/bar/.baz/b
2013-09-02 21:32:57        281 foo/bar/.baz/c
2013-09-02 21:32:57         73 foo/bar/.baz/d
2013-09-02 21:32:57        452 foo/bar/.baz/e
2013-09-02 21:32:57        896 foo/bar/.baz/hooks/bar
2013-09-02 21:32:57        189 foo/bar/.baz/hooks/foo
2013-09-02 21:32:57        398 z.txt
```
**示例 5：汇总存储桶中的所有前缀和对象**  
以下`ls`命令使用--human-readable和--summary选项演示了相同的命令。 --human readable 在中显示文件大小。Bytes/MiB/KiB/GiB/TiB/PiB/EiB --summary 在结果列表的末尾显示对象的总数和总大小：  

```
aws s3 ls s3://amzn-s3-demo-bucket \
    --recursive \
    --human-readable \
    --summarize
```
输出：  

```
2013-09-02 21:37:53   10 Bytes a.txt
2013-09-02 21:37:53  2.9 MiB foo.zip
2013-09-02 21:32:57   23 Bytes foo/bar/.baz/a
2013-09-02 21:32:58   41 Bytes foo/bar/.baz/b
2013-09-02 21:32:57  281 Bytes foo/bar/.baz/c
2013-09-02 21:32:57   73 Bytes foo/bar/.baz/d
2013-09-02 21:32:57  452 Bytes foo/bar/.baz/e
2013-09-02 21:32:57  896 Bytes foo/bar/.baz/hooks/bar
2013-09-02 21:32:57  189 Bytes foo/bar/.baz/hooks/foo
2013-09-02 21:32:57  398 Bytes z.txt

Total Objects: 10
   Total Size: 2.9 MiB
```
**示例 6：从 S3 接入点列出**  
以下 `ls` 命令列出来自接入点（`myaccesspoint`）的对象：  

```
aws s3 ls s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/
```
输出：  

```
                           PRE somePrefix/
2013-07-25 17:06:27         88 test.txt
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Ls](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/ls.html)。

### `mb`
<a name="s3_Mb_cli_2_topic"></a>

以下代码示例演示了如何使用 `mb`。

**AWS CLI**  
**示例 1：创建存储桶**  
以下 `mb` 命令创建存储桶。在此示例中，用户创建了存储桶 `amzn-s3-demo-bucket`。存储桶可在用户配置文件中指定的区域内创建：  

```
aws s3 mb s3://amzn-s3-demo-bucket
```
输出：  

```
make_bucket: s3://amzn-s3-demo-bucket
```
**示例 2：在指定区域内创建存储桶**  
以下 `mb` 命令在 `--region` 参数指定的区域内创建一个存储桶。在此示例中，用户在区域 `us-west-1` 内创建了存储桶 `amzn-s3-demo-bucket`：  

```
aws s3 mb s3://amzn-s3-demo-bucket \
    --region us-west-1
```
输出：  

```
make_bucket: s3://amzn-s3-demo-bucket
```
**示例 3：使用指定的标签创建存储桶**  
以下 `mb` 命令使用通过 `--tags` 参数指定的标签创建一个存储桶。在此示例中，用户使用两个标签（分别带有键 `Key1` 和 `Key2`）创建存储桶 `amzn-s3-demo-bucket`。  

```
aws s3 mb s3://amzn-s3-demo-bucket \
    --tags Key1 Value1 \
    --tags Key2 Value2
```
输出：  

```
make_bucket: s3://amzn-s3-demo-bucket
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Mb](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/mb.html)。

### `mv`
<a name="s3_Mv_cli_2_topic"></a>

以下代码示例演示了如何使用 `mv`。

**AWS CLI**  
**示例 1：将本地文件移动到指定的存储桶**  
以下 `mv` 命令将单个文件移动到指定的存储桶和密钥。  

```
aws s3 mv test.txt s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
move: test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 2：将对象移动到指定的存储桶和密钥**  
以下 `mv` 命令将单个 S3 对象移动到指定的存储桶和密钥。  

```
aws s3 mv s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 3：将 S3 对象移动到本地目录**  
以下 `mv` 命令将单个对象移动到指定的本地文件。  

```
aws s3 mv s3://amzn-s3-demo-bucket/test.txt test2.txt
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test.txt to test2.txt
```
**示例 4：将具有原始名称的对象移动到指定的存储桶**  
以下 `mv` 命令将单个对象移动到指定的存储桶，同时保留其原始名称：  

```
aws s3 mv s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket2/
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt
```
**示例 5：将存储桶中的所有对象和前缀移动到本地目录**  
当与参数 `--recursive` 一起传递时，以下 `mv` 命令将指定前缀和存储桶下的所有对象递归移动到指定目录。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `test2.txt`。  

```
aws s3 mv s3://amzn-s3-demo-bucket . \
    --recursive
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test1.txt to test1.txt
move: s3://amzn-s3-demo-bucket/test2.txt to test2.txt
```
**示例 6：将存储桶中的所有对象和前缀移动到本地目录（“.jpg”文件除外）**  
当与参数 `--recursive` 一起传递时，以下 `mv` 命令将指定目录下的所有文件递归移动到指定的存储桶和前缀，同时使用 `--exclude` 参数将某些文件排除在外。在此示例中，目录 `myDir` 中包含文件 `test1.txt` 和 `test2.jpg`。  

```
aws s3 mv myDir s3://amzn-s3-demo-bucket/ \
    --recursive \
    --exclude "*.jpg"
```
输出：  

```
move: myDir/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt
```
**示例 7：将存储桶中的所有对象和前缀移动到本地目录（指定前缀除外）**  
当与参数 `--recursive` 一起传递时，以下 `mv` 命令将指定存储桶下的所有对象递归移动到另一个存储桶，同时使用 `--exclude` 参数将某些对象排除在外。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `another/test1.txt`。  

```
aws s3 mv s3://amzn-s3-demo-bucket/ s3://amzn-s3-demo-bucket2/ \
    --recursive \
    --exclude "amzn-s3-demo-bucket/another/*"
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt
```
**示例 8：将对象移动到指定的存储桶并设置 ACL**  
以下 `mv` 命令将单个对象移动到指定的存储桶和密钥，同时将 ACL 设置为 `public-read-write`。  

```
aws s3 mv s3://amzn-s3-demo-bucket/test.txt s3://amzn-s3-demo-bucket/test2.txt \
    --acl public-read-write
```
输出：  

```
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 9：将本地文件移动到指定的存储桶并授予权限**  
以下 `mv` 命令说明如何使用 `--grants` 选项向所有用户授予读取权限，并向通过电子邮件地址识别的特定用户授予完全控制权限。  

```
aws s3 mv file.txt s3://amzn-s3-demo-bucket/ \
    --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
```
输出：  

```
move: file.txt to s3://amzn-s3-demo-bucket/file.txt
```
**示例 10：将文件移动到 S3 接入点**  
以下 `mv` 命令将名为 `mydoc.txt` 的单个文件移动到名为 `mykey` 的密钥下的名为 `myaccesspoint` 的接入点。  

```
aws s3 mv mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
输出：  

```
move: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Mv](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/mv.html)。

### `presign`
<a name="s3_Presign_cli_2_topic"></a>

以下代码示例演示了如何使用 `presign`。

**AWS CLI**  
**示例 1：创建默认生命周期为一小时的预签名 URL，链接到 S3 存储桶中的对象**  
以下 `presign` 命令为指定的存储桶和密钥生成一个预签名 URL，有效期为一小时。  

```
aws s3 presign s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456
```
**示例 2：创建自定义生命周期的预签名 URL，链接到 S3 存储桶中的对象**  
以下 `presign` 命令为指定的存储桶和密钥生成一个预签名 URL，有效期为一周。  

```
aws s3 presign s3://amzn-s3-demo-bucket/test2.txt \
    --expires-in 604800
```
输出：  

```
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456
```
有关更多信息，请参阅《S3 开发人员指南》**中的[与其他用户共享对象](https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Presign](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/presign.html)。

### `put-bucket-accelerate-configuration`
<a name="s3_PutBucketAccelerateConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-accelerate-configuration`。

**AWS CLI**  
**设置存储桶的加速配置**  
以下 `put-bucket-accelerate-configuration` 示例启用指定存储桶的加速配置。  

```
aws s3api put-bucket-accelerate-configuration \
    --bucket amzn-s3-demo-bucket \
    --accelerate-configuration Status=Enabled
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketAccelerateConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-accelerate-configuration.html)*中的。

### `put-bucket-acl`
<a name="s3_PutBucketAcl_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-acl`。

**AWS CLI**  
此示例`full control`向两个 AWS 用户（*user1@example.com* 和 *user2@example.com*）授予权限，并向所有人`read`授予权限：  

```
aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers
```
见 http://docs.aws.amazon。 com/AmazonS3/latest/API/RESTBucketPUTacl.html 了解有关自定义的详细信息 ACLs （例如 s3api ACL 命令使用相同的速记参数表示法）。`put-bucket-acl`  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-acl.html)*中的。

### `put-bucket-analytics-configuration`
<a name="s3_PutBucketAnalyticsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-analytics-configuration`。

**AWS CLI**  
**设置存储桶的分析配置**  
以下 `put-bucket-analytics-configuration` 示例启用指定存储桶的分析配置。  

```
aws s3api put-bucket-analytics-configuration \
    --bucket amzn-s3-demo-bucket --id 1 \
    --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketAnalyticsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-analytics-configuration.html)*中的。

### `put-bucket-cors`
<a name="s3_PutBucketCors_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-cors`。

**AWS CLI**  
以下示例启用来自 *www.example.com* 的 `PUT`、`POST` 和 `DELETE` 请求，并启用来自任何域的 `GET` 请求：  

```
aws s3api put-bucket-cors --bucket amzn-s3-demo-bucket --cors-configuration file://cors.json

cors.json:
{
  "CORSRules": [
    {
      "AllowedOrigins": ["http://www.example.com"],
      "AllowedHeaders": ["*"],
      "AllowedMethods": ["PUT", "POST", "DELETE"],
      "MaxAgeSeconds": 3000,
      "ExposeHeaders": ["x-amz-server-side-encryption"]
    },
    {
      "AllowedOrigins": ["*"],
      "AllowedHeaders": ["Authorization"],
      "AllowedMethods": ["GET"],
      "MaxAgeSeconds": 3000
    }
  ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketCors](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-cors.html)*中的。

### `put-bucket-encryption`
<a name="s3_PutBucketEncryption_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-encryption`。

**AWS CLI**  
**配置存储桶的服务器端加密**  
以下`put-bucket-encryption`示例将 AES256 加密设置为指定存储桶的默认值。  

```
aws s3api put-bucket-encryption \
    --bucket amzn-s3-demo-bucket \
    --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketEncryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-encryption.html)*中的。

### `put-bucket-intelligent-tiering-configuration`
<a name="s3_PutBucketIntelligentTieringConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-intelligent-tiering-configuration`。

**AWS CLI**  
**更新存储桶上的 S3 智能分层配置**  
以下`put-bucket-intelligent-tiering-configuration`示例更新了存储桶上名 ExampleConfig为的 S3 智能分层配置。该配置会在 90 天后将前缀映像下未曾访问过的对象过渡到归档访问层，并在 180 天后过渡到深度归档访问层。  

```
aws s3api put-bucket-intelligent-tiering-configuration \
    --bucket amzn-s3-demo-bucket \
    --id "ExampleConfig" \
    --intelligent-tiering-configuration file://intelligent-tiering-configuration.json
```
`intelligent-tiering-configuration.json` 的内容：  

```
{
    "Id": "ExampleConfig",
    "Status": "Enabled",
    "Filter": {
        "Prefix": "images"
        },
    "Tierings": [
        {
            "Days": 90,
            "AccessTier": "ARCHIVE_ACCESS"
        },
        {
            "Days": 180,
            "AccessTier": "DEEP_ARCHIVE_ACCESS"
        }
    ]
}
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon S3 用户指南》**中的[设置现有存储桶的对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketIntelligentTieringConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-intelligent-tiering-configuration.html)*中的。

### `put-bucket-inventory-configuration`
<a name="s3_PutBucketInventoryConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-inventory-configuration`。

**AWS CLI**  
**示例 1：为存储桶设置清单配置**  
以下 `put-bucket-inventory-configuration` 示例为存储桶 `amzn-s3-demo-bucket` 设置 ORC 格式的每周清单报告。  

```
aws s3api put-bucket-inventory-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 1 \
    --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "Format": "ORC" }}, "IsEnabled": true, "Id": "1", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Weekly" }}'
```
此命令不生成任何输出。  
**示例 2：为存储桶设置清单配置**  
以下 `put-bucket-inventory-configuration` 示例为存储桶 `amzn-s3-demo-bucket` 设置 CSV 格式的每日清单报告。  

```
aws s3api put-bucket-inventory-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 2 \
    --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "Format": "CSV" }}, "IsEnabled": true, "Id": "2", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Daily" }}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketInventoryConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-inventory-configuration.html)*中的。

### `put-bucket-lifecycle-configuration`
<a name="s3_PutBucketLifecycleConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-lifecycle-configuration`。

**AWS CLI**  
以下命令将生命周期配置应用于名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api put-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --lifecycle-configuration  file://lifecycle.json
```
文件 `lifecycle.json` 是当前文件夹中指定两个规则的 JSON 文档：  

```
{
    "Rules": [
        {
            "ID": "Move rotated logs to Glacier",
            "Prefix": "rotated/",
            "Status": "Enabled",
            "Transitions": [
                {
                    "Date": "2015-11-10T00:00:00.000Z",
                    "StorageClass": "GLACIER"
                }
            ]
        },
        {
            "Status": "Enabled",
            "Prefix": "",
            "NoncurrentVersionTransitions": [
                {
                    "NoncurrentDays": 2,
                    "StorageClass": "GLACIER"
                }
            ],
            "ID": "Move old versions to Glacier"
        }
    ]
}
```
第一条规则在指定日期将带有前缀 `rotated` 的文件移动到 Glacier。第二条规则在旧对象版本不再是最新版本时将其移至 Glacier。有关可接受时间戳格式的信息，请参阅《AWS CLI 用户指南》**中的“指定参数值”。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketLifecycleConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-lifecycle-configuration.html)*中的。

### `put-bucket-lifecycle`
<a name="s3_PutBucketLifecycle_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-lifecycle`。

**AWS CLI**  
以下命令将生命周期配置应用于存储桶 `amzn-s3-demo-bucket`：  

```
aws s3api put-bucket-lifecycle --bucket amzn-s3-demo-bucket --lifecycle-configuration file://lifecycle.json
```
文件 `lifecycle.json` 是当前文件夹中指定两个规则的 JSON 文档：  

```
{
  "Rules": [
    {
      "ID": "Move to Glacier after sixty days (objects in logs/2015/)",
      "Prefix": "logs/2015/",
      "Status": "Enabled",
      "Transition": {
        "Days": 60,
        "StorageClass": "GLACIER"
      }
    },
    {
      "Expiration": {
        "Date": "2016-01-01T00:00:00.000Z"
      },
      "ID": "Delete 2014 logs in 2016.",
      "Prefix": "logs/2014/",
      "Status": "Enabled"
    }
  ]
}
```
第一条规则是在六十天后将文件移动到 Amazon Glacier。第二条规则是在指定日期从 Amazon S3 中删除文件。有关可接受时间戳格式的信息，请参阅《AWS CLI 用户指南》**中的“指定参数值”。  
上面示例中的每条规则都指定了其适用的策略（`Transition` 或 `Expiration`）和文件前缀（文件夹名称）。您还可以通过指定空白前缀来创建适用于整个存储桶的规则：  

```
{
  "Rules": [
    {
      "ID": "Move to Glacier after sixty days (all objects in bucket)",
      "Prefix": "",
      "Status": "Enabled",
      "Transition": {
        "Days": 60,
        "StorageClass": "GLACIER"
      }
    }
  ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketLifecycle](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-lifecycle.html)*中的。

### `put-bucket-logging`
<a name="s3_PutBucketLogging_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-logging`。

**AWS CLI**  
**示例 1：设置存储桶策略日志记录**  
以下 `put-bucket-logging` 示例为 *amzn-s3-demo-bucket* 设置日志记录策略。首先，使用 `put-bucket-policy` 命令在存储桶策略中向日志记录服务主体授予权限。  

```
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://policy.json
```
`policy.json` 的内容：  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {"Service": "logging.s3.amazonaws.com"},
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/Logs/*",
            "Condition": {
                "ArnLike": {"aws:SourceARN": "arn:aws:s3:::SOURCE-BUCKET-NAME"},
                "StringEquals": {"aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID"}
            }
        }
    ]
}
```
要应用日志记录策略，请使用 `put-bucket-logging`。  

```
aws s3api put-bucket-logging \
    --bucket amzn-s3-demo-bucket \
    --bucket-logging-status file://logging.json
```
`logging.json` 的内容：  

```
{
     "LoggingEnabled": {
         "TargetBucket": "amzn-s3-demo-bucket",
         "TargetPrefix": "Logs/"
     }
 }
```
向日志记录服务主体授予 `s3:PutObject` 权限需要使用 `put-bucket-policy` 命令。  
有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的 [Amazon S3 服务器访问日志记录](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html)。  
**示例 2：设置仅向单个用户授予日志访问权限的存储桶策略**  
以下 `put-bucket-logging` 示例为 *amzn-s3-demo-bucket* 设置日志记录策略。 AWS 用户 *bob@example.com* 将完全控制日志文件，其他人没有任何访问权限。首先，使用 `put-bucket-acl` 授予 S3 权限。  

```
aws s3api put-bucket-acl \
    --bucket amzn-s3-demo-bucket \
    --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery \
    --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery
```
然后，使用 `put-bucket-logging` 应用日志记录策略。  

```
aws s3api put-bucket-logging \
    --bucket amzn-s3-demo-bucket \
    --bucket-logging-status file://logging.json
```
`logging.json` 的内容：  

```
{
    "LoggingEnabled": {
        "TargetBucket": "amzn-s3-demo-bucket",
        "TargetPrefix": "amzn-s3-demo-bucket-logs/",
        "TargetGrants": [
            {
                "Grantee": {
                    "Type": "AmazonCustomerByEmail",
                    "EmailAddress": "bob@example.com"
                },
                "Permission": "FULL_CONTROL"
            }
        ]
    }
}
```
必须使用 `put-bucket-acl` 命令向 S3 的日志传输系统授予必要的权限（write-acp 和 read-acp 权限）。  
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的 [Amazon S3 服务器访问日志记录](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketLogging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-logging.html)*中的。

### `put-bucket-metrics-configuration`
<a name="s3_PutBucketMetricsConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-metrics-configuration`。

**AWS CLI**  
**设置存储桶的指标配置**  
以下 `put-bucket-metrics-configuration` 示例为指定存储桶设置 ID 为 123 的指标配置。  

```
aws s3api put-bucket-metrics-configuration \
    --bucket amzn-s3-demo-bucket \
    --id 123 \
    --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketMetricsConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-metrics-configuration.html)*中的。

### `put-bucket-notification-configuration`
<a name="s3_PutBucketNotificationConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-notification-configuration`。

**AWS CLI**  
**启用存储桶的指定通知**  
以下 `put-bucket-notification-configuration` 示例将通知配置应用于名为 `amzn-s3-demo-bucket` 的存储桶。文件 `notification.json` 是当前文件夹中的一个 JSON 文件，用于指定 SNS 主题和要监控的事件类型。  

```
aws s3api put-bucket-notification-configuration \
    --bucket amzn-s3-demo-bucket \
    --notification-configuration file://notification.json
```
`notification.json` 的内容：  

```
{
    "TopicConfigurations": [
        {
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic",
            "Events": [
                "s3:ObjectCreated:*"
            ]
        }
    ]
}
```
SNS 主题必须附加一个 IAM 策略，以允许 Amazon S3 向其发布。  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-ID",
    "Statement": [
        {
            "Sid": "example-statement-ID",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": [
                "SNS:Publish"
            ],
            "Resource": "arn:aws:sns:us-west-2:123456789012::s3-notification-topic",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket"
                }
            }
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketNotificationConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification-configuration.html)*中的。

### `put-bucket-notification`
<a name="s3_PutBucketNotification_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-notification`。

**AWS CLI**  
将通知配置应用于名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api put-bucket-notification --bucket amzn-s3-demo-bucket --notification-configuration file://notification.json
```
文件 `notification.json` 是当前文件夹中的一个 JSON 文件，用于指定 SNS 主题和要监控的事件类型：  

```
{
  "TopicConfiguration": {
    "Event": "s3:ObjectCreated:*",
    "Topic": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic"
  }
}
```
SNS 主题必须附加一个 IAM 策略，以允许 Amazon S3 向其发布：  

```
{
 "Version":"2012-10-17",		 	 	 
 "Id": "example-ID",
 "Statement": [
  {
   "Sid": "example-statement-ID",
   "Effect": "Allow",
   "Principal": {
     "Service": "s3.amazonaws.com"
   },
   "Action": [
    "SNS:Publish"
   ],
   "Resource": "arn:aws:sns:us-west-2:123456789012:amzn-s3-demo-bucket",
   "Condition": {
      "ArnLike": {
      "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket"
    }
   }
  }
 ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketNotification](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification.html)*中的。

### `put-bucket-ownership-controls`
<a name="s3_PutBucketOwnershipControls_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-ownership-controls`。

**AWS CLI**  
**更新存储桶的存储桶所有权设置**  
以下 `put-bucket-ownership-controls` 示例更新存储桶的存储桶所有权设置。  

```
aws s3api put-bucket-ownership-controls \
    --bucket amzn-s3-demo-bucket \
    --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon S3 用户指南》**中的[设置现有存储桶的对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketOwnershipControls](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-ownership-controls.html)*中的。

### `put-bucket-policy`
<a name="s3_PutBucketPolicy_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-policy`。

**AWS CLI**  
此示例允许所有用户检索 *amzn-s3-demo-* bucket 中的任何对象，但中的对象除外。*MySecretFolder*它还向 AWS 账户的 root 用户授予`put`和`delete`权限`1234-5678-9012`：  

```
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json

policy.json:
{
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      },
      {
         "Effect": "Deny",
         "Principal": "*",
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/MySecretFolder/*"
      },
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:root"
         },
         "Action": [
            "s3:DeleteObject",
            "s3:PutObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
   ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-policy.html)*中的。

### `put-bucket-replication`
<a name="s3_PutBucketReplication_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-replication`。

**AWS CLI**  
**为 S3 存储桶配置复制**  
以下 `put-bucket-replication` 示例将复制配置应用于指定的 S3 存储桶。  

```
aws s3api put-bucket-replication \
    --bucket amzn-s3-demo-bucket1 \
    --replication-configuration file://replication.json
```
`replication.json` 的内容：  

```
{
    "Role": "arn:aws:iam::123456789012:role/s3-replication-role",
    "Rules": [
        {
            "Status": "Enabled",
            "Priority": 1,
            "DeleteMarkerReplication": { "Status": "Disabled" },
            "Filter" : { "Prefix": ""},
            "Destination": {
                "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket2"
            }
        }
    ]
}
```
目标存储桶必须已启用版本控制。指定的角色必须具有写入目标存储桶的权限，并且必须建立允许 Amazon S3 代入角色的信任关系。  
示例角色权限策略：  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ReplicateObject",
                "s3:ReplicateDelete",
                "s3:ReplicateTags"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket2/*"
        }
    ]
}
```
示例信任关系策略：  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Simple Storage Service 控制台用户指南》**中的[这是主题标题](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-replication.html)：  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketReplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-replication.html)*中的。

### `put-bucket-request-payment`
<a name="s3_PutBucketRequestPayment_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-request-payment`。

**AWS CLI**  
**示例 1：为存储桶启用“申请方付款”配置**  
以下 `put-bucket-request-payment` 示例为指定的存储桶启用 `requester pays`。  

```
aws s3api put-bucket-request-payment \
    --bucket amzn-s3-demo-bucket \
    --request-payment-configuration '{"Payer":"Requester"}'
```
此命令不生成任何输出。  
**示例 2：为存储桶禁用“申请方付款”配置**  
以下 `put-bucket-request-payment` 示例为指定的存储桶禁用 `requester pays`。  

```
aws s3api put-bucket-request-payment \
    --bucket amzn-s3-demo-bucket \
    --request-payment-configuration '{"Payer":"BucketOwner"}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketRequestPayment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-request-payment.html)*中的。

### `put-bucket-tagging`
<a name="s3_PutBucketTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-tagging`。

**AWS CLI**  
以下命令将标记配置应用于名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api put-bucket-tagging --bucket amzn-s3-demo-bucket --tagging file://tagging.json
```
文件 `tagging.json` 是当前文件夹中指定标签的 JSON 文档：  

```
{
   "TagSet": [
     {
       "Key": "organization",
       "Value": "marketing"
     }
   ]
}
```
或者，直接从命令行将标记配置应用于 `amzn-s3-demo-bucket`：  

```
aws s3api put-bucket-tagging --bucket amzn-s3-demo-bucket --tagging 'TagSet=[{Key=organization,Value=marketing}]'
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-tagging.html)*中的。

### `put-bucket-versioning`
<a name="s3_PutBucketVersioning_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-versioning`。

**AWS CLI**  
以下命令对于名为 `amzn-s3-demo-bucket` 的存储桶启用版本控制。  

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket --versioning-configuration Status=Enabled
```
以下命令启用版本控制，并使用 mfa 代码  

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket --versioning-configuration Status=Enabled --mfa "SERIAL 123456"
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketVersioning](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-versioning.html)*中的。

### `put-bucket-website`
<a name="s3_PutBucketWebsite_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-bucket-website`。

**AWS CLI**  
将静态网站配置应用于名为 `amzn-s3-demo-bucket` 的存储桶：  

```
aws s3api put-bucket-website --bucket amzn-s3-demo-bucket --website-configuration file://website.json
```
文件 `website.json` 是当前文件夹中的一个 JSON 文档，用于指定网站的索引和错误页面：  

```
{
    "IndexDocument": {
        "Suffix": "index.html"
    },
    "ErrorDocument": {
        "Key": "error.html"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutBucketWebsite](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-website.html)*中的。

### `put-object-acl`
<a name="s3_PutObjectAcl_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object-acl`。

**AWS CLI**  
以下命令`full control`向两个 AWS 用户（*user1@example.com* 和 *user2@example.com*）授予权限，向所有人`read`授予权限：  

```
aws s3api put-object-acl --bucket amzn-s3-demo-bucket --key file.txt --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers
```
见 http://docs.aws.amazon。 com/AmazonS3/latest/API/RESTBucketPUTacl.html 了解有关自定义的详细信息 ACLs （例如 s3api ACL 命令使用相同的速记参数表示法）。`put-object-acl`  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObjectAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-acl.html)*中的。

### `put-object-legal-hold`
<a name="s3_PutObjectLegalHold_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object-legal-hold`。

**AWS CLI**  
**对对象应用法定保留**  
以下 `put-object-legal-hold` 示例在 `doc1.rtf` 对象上设置了法定保留。  

```
aws s3api put-object-legal-hold \
    --bucket amzn-s3-demo-bucket-with-object-lock \
    --key doc1.rtf \
    --legal-hold Status=ON
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObjectLegalHold](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-legal-hold.html)*中的。

### `put-object-lock-configuration`
<a name="s3_PutObjectLockConfiguration_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object-lock-configuration`。

**AWS CLI**  
**在存储桶上设置对象锁定配置**  
以下 `put-object-lock-configuration` 示例在指定存储桶上设置了 50 天的对象锁定。  

```
aws s3api put-object-lock-configuration \
    --bucket amzn-s3-demo-bucket-with-object-lock \
    --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObjectLockConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html)*中的。

### `put-object-retention`
<a name="s3_PutObjectRetention_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object-retention`。

**AWS CLI**  
**为对象设置对象保留配置**  
以下 `put-object-retention` 示例为指定对象设置直到 2025 年 1 月 1 日的对象保留配置。  

```
aws s3api put-object-retention \
    --bucket amzn-s3-demo-bucket-with-object-lock \
    --key doc1.rtf \
    --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObjectRetention](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-retention.html)*中的。

### `put-object-tagging`
<a name="s3_PutObjectTagging_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object-tagging`。

**AWS CLI**  
**为对象设置标签**  
以下 `put-object-tagging` 示例会在指定对象上设置带有键 `designation` 和值 `confidential` 的标签。  

```
aws s3api put-object-tagging \
    --bucket amzn-s3-demo-bucket \
    --key doc1.rtf \
    --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}'
```
此命令不生成任何输出。  
以下 `put-object-tagging` 示例在指定对象上设置多个标签集。  

```
aws s3api put-object-tagging \
    --bucket amzn-s3-demo-bucket-example \
    --key doc3.rtf \
    --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}'
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObjectTagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-tagging.html)*中的。

### `put-object`
<a name="s3_PutObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-object`。

**AWS CLI**  
**示例 1：将对象上传到 Amazon S3**  
以下 `put-object` 命令示例将对象上传到 Amazon S3。  

```
aws s3api put-object \
    --bucket amzn-s3-demo-bucket \
    --key my-dir/MySampleImage.png \
    --body MySampleImage.png
```
有关上传对象的更多信息，请参阅上传对象 < http://docs.aws.amazon。 com/AmazonS3/latest/dev/UploadingObjects*亚马逊* S3 开发者指南中的.html>。  
**示例 2：将视频文件上传到 Amazon S3**  
以下 `put-object` 命令示例上传视频文件。  

```
aws s3api put-object \
    --bucket amzn-s3-demo-bucket \
    --key my-dir/big-video-file.mp4 \
    --body /media/videos/f-sharp-3-data-services.mp4
```
有关上传对象的更多信息，请参阅上传对象 < http://docs.aws.amazon。 com/AmazonS3/latest/dev/UploadingObjects*亚马逊* S3 开发者指南中的.html>。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html)*中的。

### `put-public-access-block`
<a name="s3_PutPublicAccessBlock_cli_2_topic"></a>

以下代码示例演示了如何使用 `put-public-access-block`。

**AWS CLI**  
**为存储桶设置阻止公共访问配置**  
以下 `put-public-access-block` 示例为指定存储桶设置限制性阻止公共访问配置。  

```
aws s3api put-public-access-block \
    --bucket amzn-s3-demo-bucket \
    --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutPublicAccessBlock](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-public-access-block.html)*中的。

### `rb`
<a name="s3_Rb_cli_2_topic"></a>

以下代码示例演示了如何使用 `rb`。

**AWS CLI**  
**示例 1：删除存储桶**  
以下 `rb` 命令将移除存储桶。在此示例中，用户的存储桶为 `amzn-s3-demo-bucket`。请注意，存储桶必须为空才能移除：  

```
aws s3 rb s3://amzn-s3-demo-bucket
```
输出：  

```
remove_bucket: amzn-s3-demo-bucket
```
**示例 2：强制删除存储桶**  
以下 `rb` 命令使用 `--force` 参数，首先移除存储桶中的所有对象，然后移除存储桶本身。在此示例中，用户的存储桶为 `amzn-s3-demo-bucket`，`amzn-s3-demo-bucket` 中的对象为 `test1.txt` 和 `test2.txt`：  

```
aws s3 rb s3://amzn-s3-demo-bucket \
    --force
```
输出：  

```
delete: s3://amzn-s3-demo-bucket/test1.txt
delete: s3://amzn-s3-demo-bucket/test2.txt
remove_bucket: amzn-s3-demo-bucket
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Rb](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/rb.html)。

### `restore-object`
<a name="s3_RestoreObject_cli_2_topic"></a>

以下代码示例演示了如何使用 `restore-object`。

**AWS CLI**  
**为对象创建还原请求**  
以下 `restore-object` 示例将存储桶 `my-glacier-bucket` 的指定 Amazon S3 Glacier 对象还原为 10 天。  

```
aws s3api restore-object \
    --bucket my-glacier-bucket \
    --key doc1.rtf \
    --restore-request Days=10
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[RestoreObject](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/restore-object.html)*中的。

### `rm`
<a name="s3_Rm_cli_2_topic"></a>

以下代码示例演示了如何使用 `rm`。

**AWS CLI**  
**示例 1：删除 S3 对象**  
以下 `rm` 命令将删除单个 S3 对象：  

```
aws s3 rm s3://amzn-s3-demo-bucket/test2.txt
```
输出：  

```
delete: s3://amzn-s3-demo-bucket/test2.txt
```
**示例 2：删除存储桶中的所有内容**  
以下 `rm` 命令在传递参数 `--recursive` 时，会递归删除指定存储桶和前缀下的所有对象。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `test2.txt`：  

```
aws s3 rm s3://amzn-s3-demo-bucket \
    --recursive
```
输出：  

```
delete: s3://amzn-s3-demo-bucket/test1.txt
delete: s3://amzn-s3-demo-bucket/test2.txt
```
**示例 3：删除存储桶中的所有内容（“.jpg”文件除外）**  
以下 `rm` 命令在传递参数 `--recursive` 时，会递归删除指定存储桶和前缀下的所有对象，同时使用 `--exclude` 参数将某些对象排除在外。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `test2.jpg`：  

```
aws s3 rm s3://amzn-s3-demo-bucket/ \
    --recursive \
    --exclude "*.jpg"
```
输出：  

```
delete: s3://amzn-s3-demo-bucket/test1.txt
```
**示例 4：删除存储桶中的所有内容（指定前缀下的对象除外）**  
以下 `rm` 命令在传递参数 `--recursive` 时，会递归删除指定存储桶和前缀下的所有对象，同时使用 `--exclude` 参数将特定前缀下的所有对象排除在外。在此示例中，存储桶 `amzn-s3-demo-bucket` 中包含对象 `test1.txt` 和 `another/test.txt`：  

```
aws s3 rm s3://amzn-s3-demo-bucket/ \
    --recursive \
    --exclude "another/*"
```
输出：  

```
delete: s3://amzn-s3-demo-bucket/test1.txt
```
**示例 5：从 S3 接入点中删除对象**  
以下 `rm` 命令从接入点（`myaccesspoint`）中删除单个对象（`mykey`）。：：以下 `rm` 命令从接入点（`myaccesspoint`）中删除单个对象（`mykey`）。  

```
aws s3 rm s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
输出：  

```
delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Rm](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/rm.html)。

### `select-object-content`
<a name="s3_SelectObjectContent_cli_2_topic"></a>

以下代码示例演示了如何使用 `select-object-content`。

**AWS CLI**  
**基于 SQL 语句筛选 Amazon S3 对象的内容**  
以下 `select-object-content` 示例使用指定的 SQL 语句筛选 `my-data-file.csv` 对象并将输出发送到文件。  

```
aws s3api select-object-content \
    --bucket amzn-s3-demo-bucket \
    --key my-data-file.csv \
    --expression "select * from s3object limit 100" \
    --expression-type 'SQL' \
    --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \
    --output-serialization '{"CSV": {}}' "output.csv"
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[SelectObjectContent](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/select-object-content.html)*中的。

### `sync`
<a name="s3_Sync_cli_2_topic"></a>

以下代码示例演示了如何使用 `sync`。

**AWS CLI**  
**示例 1：将所有本地对象同步到指定存储桶**  
以下 `sync` 命令通过将本地文件上传到 S3，将本地目录中的对象同步到指定的前缀和存储桶。如果本地文件的大小与 S3 对象的大小不同，本地文件的上次修改时间晚于 S3 对象的上次修改时间，或者本地文件在指定的存储桶和前缀下不存在，则需要上传本地文件。在此示例中，用户将存储桶 `amzn-s3-demo-bucket` 同步到了当前本地目录中。当前本地目录包含文件 `test.txt` 和 `test2.txt`。存储桶 `amzn-s3-demo-bucket` 不包含任何对象。  

```
aws s3 sync . s3://amzn-s3-demo-bucket
```
输出：  

```
upload: test.txt to s3://amzn-s3-demo-bucket/test.txt
upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 2：将指定的 S3 存储桶中的所有 S3 对象同步到另一个存储桶**  
以下 `sync` 命令通过复制 S3 对象，将指定前缀和存储桶下的对象同步到另一个指定前缀和存储桶下的对象。如果两个 S3 对象的大小不同，源的上次修改时间晚于目标的上次修改时间，或者 S3 对象在指定的存储桶和前缀目标下不存在，则需要复制 S3 对象。  
在此示例中，用户将存储桶 `amzn-s3-demo-bucket` 同步到了存储桶 `amzn-s3-demo-bucket2`。存储桶 `amzn-s3-demo-bucket` 包含对象 `test.txt` 和 `test2.txt`。存储桶 `amzn-s3-demo-bucket2` 不包含任何对象：  

```
aws s3 sync s3://amzn-s3-demo-bucket s3://amzn-s3-demo-bucket2
```
输出：  

```
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt
copy: s3://amzn-s3-demo-bucket/test2.txt to s3://amzn-s3-demo-bucket2/test2.txt
```
**示例 3：将指定 S3 存储桶中的所有 S3 对象同步到本地目录**  
以下 `sync` 命令通过下载 S3 对象，将指定 S3 存储桶中的文件同步到本地目录。如果 S3 对象的大小与本地文件的大小不同，S3 对象的上次修改时间晚于本地文件的上次修改时间，或者 S3 对象在本地目录中不存在，则需要下载 S3 对象。请注意，从 S3 下载对象时，本地文件的上次修改时间将更改为 S3 对象的上次修改时间。在此示例中，用户将存储桶 `amzn-s3-demo-bucket` 同步到了当前本地目录中。存储桶 `amzn-s3-demo-bucket` 包含对象 `test.txt` 和 `test2.txt`。当前本地目录中没有文件：  

```
aws s3 sync s3://amzn-s3-demo-bucket .
```
输出：  

```
download: s3://amzn-s3-demo-bucket/test.txt to test.txt
download: s3://amzn-s3-demo-bucket/test2.txt to test2.txt
```
**示例 4：将所有本地对象同步到指定存储桶并删除所有不匹配的文件**  
以下 `sync` 命令通过将本地文件上传到 S3，将指定前缀和存储桶下的对象同步到本地目录中的文件。由于 `--delete` 参数的原因，任何存在于指定前缀和存储桶下但不存在于本地目录中的文件都将被删除。在此示例中，用户将存储桶 `amzn-s3-demo-bucket` 同步到了当前本地目录中。当前本地目录包含文件 `test.txt` 和 `test2.txt`。存储桶 `amzn-s3-demo-bucket` 包含对象 `test3.txt`：  

```
aws s3 sync . s3://amzn-s3-demo-bucket \
    --delete
```
输出：  

```
upload: test.txt to s3://amzn-s3-demo-bucket/test.txt
upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt
delete: s3://amzn-s3-demo-bucket/test3.txt
```
**示例 5：将除“.jpg”文件之外的所有本地对象同步到指定存储桶**  
以下 `sync` 命令通过将本地文件上传到 S3，将指定前缀和存储桶下的对象同步到本地目录中的文件。由于 `--exclude` 参数的原因，所有与 S3 和本地存在的模式相匹配的文件都不会同步。在此示例中，用户将存储桶 `amzn-s3-demo-bucket` 同步到了当前本地目录中。当前本地目录包含文件 `test.jpg` 和 `test2.txt`。存储桶 `amzn-s3-demo-bucket` 中的对象 `test.jpg` 与本地 `test.jpg` 的大小不同：  

```
aws s3 sync . s3://amzn-s3-demo-bucket \
    --exclude "*.jpg"
```
输出：  

```
upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt
```
**示例 6：将除指定的目录文件之外的所有本地对象同步到指定存储桶**  
以下 `sync` 命令通过下载 S3 对象，将本地目录下的文件同步到指定前缀和存储桶下的对象。此示例使用 `--exclude` 参数标志，将指定目录和 S3 前缀排除在 `sync` 命令之外。在此示例中，用户将当前本地目录同步到了存储桶 `amzn-s3-demo-bucket` 中。当前本地目录包含文件 `test.txt` 和 `another/test2.txt`。存储桶 `amzn-s3-demo-bucket` 包含对象 `another/test5.txt` 和 `test1.txt`：  

```
aws s3 sync s3://amzn-s3-demo-bucket/ . \
    --exclude "*another/*"
```
输出：  

```
download: s3://amzn-s3-demo-bucket/test1.txt to test1.txt
```
**示例 7：在不同区域的存储桶之间同步所有对象**  
以下 `sync` 命令可在不同区域的两个存储桶之间同步文件：  

```
aws s3 sync s3://my-us-west-2-bucket s3://my-us-east-1-bucket \
    --source-region us-west-2 \
    --region us-east-1
```
输出：  

```
download: s3://my-us-west-2-bucket/test1.txt to s3://my-us-east-1-bucket/test1.txt
```
**示例 8：同步到 S3 接入点**  
以下 `sync` 命令会将当前目录同步到接入点（`myaccesspoint`）：  

```
aws s3 sync . s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/
```
输出：  

```
upload: test.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test.txt
upload: test2.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test2.txt
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Sync](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/sync.html)。

### `upload-part-copy`
<a name="s3_UploadPartCopy_cli_2_topic"></a>

以下代码示例演示了如何使用 `upload-part-copy`。

**AWS CLI**  
**从现有对象复制数据作为数据来源，上传部分对象**  
以下 `upload-part-copy` 示例会通过从现有对象复制数据作为数据来源，上传部分对象。  

```
aws s3api upload-part-copy \
    --bucket amzn-s3-demo-bucket \
    --key "Map_Data_June.mp4" \
    --copy-source "amzn-s3-demo-bucket/copy_of_Map_Data_June.mp4" \
    --part-number 1 \
    --upload-id "bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"
```
输出：  

```
{
    "CopyPartResult": {
        "LastModified": "2019-12-13T23:16:03.000Z",
        "ETag": "\"711470fc377698c393d94aed6305e245\""
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[UploadPartCopy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/upload-part-copy.html)*中的。

### `upload-part`
<a name="s3_UploadPart_cli_2_topic"></a>

以下代码示例演示了如何使用 `upload-part`。

**AWS CLI**  
以下命令上传使用 `create-multipart-upload` 命令启动的分段上传中的第一个分段：  

```
aws s3api upload-part --bucket amzn-s3-demo-bucket --key 'multipart/01' --part-number 1 --body part01 --upload-id  "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R"
```
`body` 选项采用本地文件的名称或路径进行上传（不要使用 file:// 前缀）。最小分段大小为 5 MB。上传 ID 由 `create-multipart-upload` 返回，也可以使用 `list-multipart-uploads` 进行检索。存储桶和键是在您创建分段上传时指定的。  
输出：  

```
{
    "ETag": "\"e868e0f4719e394144ef36531ee6824c\""
}
```
保存每个零件的 ETag 值以备后用。需要这些值才能完成分段上传。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[UploadPart](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/upload-part.html)*中的。

### `website`
<a name="s3_Website_cli_2_topic"></a>

以下代码示例演示了如何使用 `website`。

**AWS CLI**  
**将 S3 存储桶配置为静态网站**  
以下命令将名为 `amzn-s3-demo-bucket` 的存储桶配置为静态网站。索引文档选项指定了访客在导航到网站 URL 时将定向到的 `amzn-s3-demo-bucket` 文件。在此示例中，存储桶位于 us-west-2 区域中，因此网站将显示为 `http://amzn-s3-demo-bucket.s3-website-us-west-2.amazonaws.com`。  
存储桶中显示在静态站点中的所有文件都必须配置为允许访客打开。文件权限与存储桶网站配置分开配置。  

```
aws s3 website s3://amzn-s3-demo-bucket/ \
    --index-document index.html \
    --error-document error.html
```
有关在 Amazon S3 中托管静态网站的信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[托管静态网站](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [Website](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/website.html)。