

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

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

# 使用 Amazon S3 控制示例 AWS CLI
<a name="cli_2_s3-control_code_examples"></a>

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

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

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

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

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

### `create-access-point`
<a name="s3-control_CreateAccessPoint_cli_2_topic"></a>

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

**AWS CLI**  
**创建接入点**  
以下 `create-access-point` 示例为账户 123456789012 中的存储桶 `business-records` 创建名为 `finance-ap` 的接入点。在运行此示例之前，请针对您的使用案例将接入点名称、存储桶名称和账号替换为适合的值。  

```
aws s3control create-access-point \
    --account-id 123456789012 \
    --bucket business-records \
    --name finance-ap
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[创建接入点](https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateAccessPoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/create-access-point.html)*中的。

### `create-job`
<a name="s3-control_CreateJob_cli_2_topic"></a>

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

**AWS CLI**  
**创建 Amazon S3 批量操作任务**  
以下 `create-job` 示例创建一个 Amazon S3 批量操作任务，将对象标记为 `confidential` in the bucket ``employee-records`。  

```
aws s3control create-job \
    --account-id 123456789012 \
    --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"confidential", "Value":"true"}] }}' \
    --report '{"Bucket":"arn:aws:s3:::employee-records-logs","Prefix":"batch-op-create-job", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \
    --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::employee-records-logs/inv-report/7a6a9be4-072c-407e-85a2-ec3e982f773e.csv","ETag":"69f52a4e9f797e987155d9c8f5880897"}}' \
    --priority 42 \
    --role-arn arn:aws:iam::123456789012:role/S3BatchJobRole
```
输出：  

```
{
    "JobId": "93735294-df46-44d5-8638-6356f335324e"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateJob](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/create-job.html)*中的。

### `delete-access-point-policy`
<a name="s3-control_DeleteAccessPointPolicy_cli_2_topic"></a>

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

**AWS CLI**  
**删除接入点策略**  
以下 `delete-access-point-policy` 示例删除账户 123456789012 中名为 `finance-ap` 的接入点的接入点策略。在运行此示例之前，请针对您的使用案例将接入点名称和账号替换为适合的值。  

```
aws s3control delete-access-point-policy \
    --account-id 123456789012 \
    --name finance-ap
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteAccessPointPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/delete-access-point-policy.html)*中的。

### `delete-access-point`
<a name="s3-control_DeleteAccessPoint_cli_2_topic"></a>

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

**AWS CLI**  
**删除接入点**  
以下 `delete-access-point` 示例在账户 123456789012 中删除名为 `finance-ap` 的接入点。在运行此示例之前，请针对您的使用案例将接入点名称和账号替换为适合的值。  

```
aws s3control delete-access-point \
    --account-id 123456789012 \
    --name finance-ap
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DeleteAccessPoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/delete-access-point.html)*中的。

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

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

**AWS CLI**  
删除账户的屏蔽公共访问权限设置  
以下 `delete-public-access-block` 示例删除指定账户的屏蔽公共访问权限设置。  

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

### `describe-job`
<a name="s3-control_DescribeJob_cli_2_topic"></a>

以下代码示例演示了如何使用 `describe-job`。

**AWS CLI**  
**描述 Amazon S3 批量操作任务**  
以下 `describe-job` 命令可为指定的批量操作任务提供配置参数和状态。  

```
aws s3control describe-job \
    --account-id 123456789012 \
    --job-id 93735294-df46-44d5-8638-6356f335324e
```
输出：  

```
{
    "Job": {
        "TerminationDate": "2019-10-03T21:49:53.944Z",
        "JobId": "93735294-df46-44d5-8638-6356f335324e",
        "FailureReasons": [],
        "Manifest": {
            "Spec": {
                "Fields": [
                    "Bucket",
                    "Key"
                ],
                "Format": "S3BatchOperations_CSV_20180820"
            },
            "Location": {
                "ETag": "69f52a4e9f797e987155d9c8f5880897",
                "ObjectArn": "arn:aws:s3:::employee-records-logs/inv-report/7a6a9be4-072c-407e-85a2-ec3e982f773e.csv"
            }
        },
        "Operation": {
            "S3PutObjectTagging": {
                "TagSet": [
                    {
                        "Value": "true",
                        "Key": "confidential"
                    }
                ]
            }
        },
        "RoleArn": "arn:aws:iam::123456789012:role/S3BatchJobRole",
        "ProgressSummary": {
            "TotalNumberOfTasks": 8,
            "NumberOfTasksFailed": 0,
            "NumberOfTasksSucceeded": 8
        },
        "Priority": 42,
        "Report": {
            "ReportScope": "AllTasks",
            "Format": "Report_CSV_20180820",
            "Enabled": true,
            "Prefix": "batch-op-create-job",
            "Bucket": "arn:aws:s3:::employee-records-logs"
        },
        "JobArn": "arn:aws:s3:us-west-2:123456789012:job/93735294-df46-44d5-8638-6356f335324e",
        "CreationTime": "2019-10-03T21:48:48.048Z",
        "Status": "Complete"
    }
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DescribeJob](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/describe-job.html)*中的。

### `get-access-point-policy-status`
<a name="s3-control_GetAccessPointPolicyStatus_cli_2_topic"></a>

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

**AWS CLI**  
**检索接入点策略状态**  
以下 `get-access-point-policy-status` 示例检索账户 123456789012 中名为 `finance-ap` 的接入点的接入点策略状态。接入点策略状态表示了该接入点的策略是否允许公共访问。在运行此示例之前，请针对您的使用案例将接入点名称和账号替换为适合的值。  

```
aws s3control get-access-point-policy-status \
    --account-id 123456789012 \
    --name finance-ap
```
输出：  

```
{
    "PolicyStatus": {
        "IsPublic": false
    }
}
```
有关何时将接入点策略视为公共策略的更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中[“公共”](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)的含义。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetAccessPointPolicyStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-access-point-policy-status.html)*中的。

### `get-access-point-policy`
<a name="s3-control_GetAccessPointPolicy_cli_2_topic"></a>

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

**AWS CLI**  
**检索接入点策略**  
以下 `get-access-point-policy` 示例检索账户 123456789012 中名为 `finance-ap` 的接入点的接入点策略。在运行此示例之前，请针对您的使用案例将接入点名称和账号替换为适合的值。  

```
aws s3control get-access-point-policy \
    --account-id 123456789012 \
    --name finance-ap
```
输出：  

```
{
    "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:role/Admin\"},\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:us-west-2:123456789012:accesspoint/finance-ap/object/records/*\"}]}"
}
```
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetAccessPointPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-access-point-policy.html)*中的。

### `get-access-point`
<a name="s3-control_GetAccessPoint_cli_2_topic"></a>

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

**AWS CLI**  
**检索接入点配置详细信息**  
以下 `get-access-point` 示例检索账户 123456789012 中名为 `finance-ap` 的接入点的配置详细信息。在运行此示例之前，请针对您的使用案例将接入点名称和账号替换为适合的值。  

```
aws s3control get-access-point \
    --account-id 123456789012 \
    --name finance-ap
```
输出：  

```
{
    "Name": "finance-ap",
    "Bucket": "business-records",
    "NetworkOrigin": "Internet",
    "PublicAccessBlockConfiguration": {
        "BlockPublicAcls": false,
        "IgnorePublicAcls": false,
        "BlockPublicPolicy": false,
        "RestrictPublicBuckets": false
    },
    "CreationDate": "2020-01-01T00:00:00Z"
}
```
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetAccessPoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-access-point.html)*中的。

### `get-multi-region-access-point-routes`
<a name="s3-control_GetMultiRegionAccessPointRoutes_cli_2_topic"></a>

以下代码示例演示了如何使用 `get-multi-region-access-point-routes`。

**AWS CLI**  
**查询当前多区域接入点路由配置**  
以下示例 `get-multi-region-access-point-routes` 将返回指定多区域接入点的当前路由配置。  

```
aws s3control get-multi-region-access-point-routes \
    --region Region \
    --account-id 111122223333 \
    --mrap MultiRegionAccessPoint_ARN
```
输出：  

```
{
    "Mrap": "arn:aws:s3::111122223333:accesspoint/0000000000000.mrap",
    "Routes": [
        {
            "Bucket": "amzn-s3-demo-bucket1",
            "Region": "ap-southeast-2",
            "TrafficDialPercentage": 100
        },
        {
            "Bucket": "amzn-s3-demo-bucket2",
            "Region": "us-west-1",
            "TrafficDialPercentage": 0
        }
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GetMultiRegionAccessPointRoutes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-multi-region-access-point-routes.html)*中的。

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

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

**AWS CLI**  
**列出账户的屏蔽公共访问权限设置**  
以下 `get-public-access-block` 示例显示指定账户的屏蔽公共访问权限设置。  

```
aws s3control get-public-access-block \
    --account-id 123456789012
```
输出：  

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

### `list-access-points`
<a name="s3-control_ListAccessPoints_cli_2_topic"></a>

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

**AWS CLI**  
**示例 1：检索账户的所有接入点列表**  
以下 `list-access-points` 示例显示挂载到账户 123456789012 所拥有的存储桶的所有接入点列表。  

```
aws s3control list-access-points \
    --account-id 123456789012
```
输出：  

```
{
    "AccessPointList": [
        {
            "Name": "finance-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "business-records"
        },
        {
            "Name": "managers-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "business-records"
        },
        {
            "Name": "private-network-ap",
            "NetworkOrigin": "VPC",
            "VpcConfiguration": {
                "VpcId": "1a2b3c"
            },
            "Bucket": "business-records"
        },
        {
            "Name": "customer-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "external-docs"
        },
        {
            "Name": "public-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "external-docs"
        }
    ]
}
```
**示例 2：检索存储桶的所有接入点列表**  
以下 `list-access-points` 示例检索挂载到账户 123456789012 所拥有的存储桶 `external-docs` 的所有接入点列表。  

```
aws s3control list-access-points \
    --account-id 123456789012 \
    --bucket external-docs
```
输出：  

```
{
    "AccessPointList": [
        {
            "Name": "customer-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "external-docs"
        },
        {
            "Name": "public-ap",
            "NetworkOrigin": "Internet",
            "Bucket": "external-docs"
        }
    ]
}
```
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListAccessPoints](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/list-access-points.html)*中的。

### `list-jobs`
<a name="s3-control_ListJobs_cli_2_topic"></a>

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

**AWS CLI**  
**列出账户 Amazon S3 批量操作任务**  
以下 `list-jobs` 示例列出了指定账户最近的所有批量操作任务。  

```
aws s3control list-jobs \
    --account-id 123456789012
```
输出：  

```
{
    "Jobs": [
        {
            "Operation": "S3PutObjectTagging",
            "ProgressSummary": {
                "NumberOfTasksFailed": 0,
                "NumberOfTasksSucceeded": 8,
                "TotalNumberOfTasks": 8
            },
            "CreationTime": "2019-10-03T21:48:48.048Z",
            "Status": "Complete",
            "JobId": "93735294-df46-44d5-8638-6356f335324e",
            "Priority": 42
        },
        {
            "Operation": "S3PutObjectTagging",
            "ProgressSummary": {
                "NumberOfTasksFailed": 0,
                "NumberOfTasksSucceeded": 0,
                "TotalNumberOfTasks": 0
            },
            "CreationTime": "2019-10-03T21:46:07.084Z",
            "Status": "Failed",
            "JobId": "3f3c7619-02d3-4779-97f6-1d98dd313108",
            "Priority": 42
        },
    ]
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ListJobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/list-jobs.html)*中的。

### `put-access-point-policy`
<a name="s3-control_PutAccessPointPolicy_cli_2_topic"></a>

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

**AWS CLI**  
**设置接入点策略**  
以下 `put-access-point-policy` 示例为账户 123456789012 中的接入点 `finance-ap` 指定相应的接入点策略。如果接入点 `finance-ap` 已有策略，则此命令会将现有策略替换为该命令中指定的策略。在运行此示例之前，请针对您的使用案例将账号、接入点名称和策略说明替换为适合的值。  

```
aws s3control put-access-point-policy \
    --account-id 123456789012 \
    --name finance-ap \
    --policy file://ap-policy.json
```
`ap-policy.json` 的内容：  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Alice"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/finance-ap/object/Alice/*"
        }
    ]
}
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[PutAccessPointPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/put-access-point-policy.html)*中的。

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

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

**AWS CLI**  
**编辑账户的屏蔽公共访问权限设置**  
以下 `put-public-access-block` 示例会将指定账户的所有屏蔽公共访问权限设置切换为 `true`。  

```
aws s3control put-public-access-block \
    --account-id 123456789012 \
    --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/s3control/put-public-access-block.html)*中的。

### `submit-multi-region-access-point-routes`
<a name="s3-control_SubmitMultiRegionAccessPointRoutes_cli_2_topic"></a>

以下代码示例演示了如何使用 `submit-multi-region-access-point-routes`。

**AWS CLI**  
**更新您的多区域接入点路由配置**  
以下 `submit-multi-region-access-point-routes` 示例更新您的多区域接入点中 `ap-southeast-2` 区域的 `amzn-s3-demo-bucket1` 和 `amzn-s3-demo-bucket2` 路由状态。  

```
aws s3control submit-multi-region-access-point-routes \
    --region ap-southeast-2 \
    --account-id 111122223333 \
    --mrap MultiRegionAccessPoint_ARN \
    --route-updates Bucket=amzn-s3-demo-bucket1,TrafficDialPercentage=100 Bucket=amzn-s3-demo-bucket2,TrafficDialPercentage=0
```
此命令不生成任何输出。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[SubmitMultiRegionAccessPointRoutes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/submit-multi-region-access-point-routes.html)*中的。

### `update-job-priority`
<a name="s3-control_UpdateJobPriority_cli_2_topic"></a>

以下代码示例演示了如何使用 `update-job-priority`。

**AWS CLI**  
**更新 Amazon S3 批量操作任务的任务优先级**  
以下 `update-job-priority` 示例会将指定的任务更新为新的优先级。  

```
aws s3control update-job-priority \
    --account-id 123456789012 \
    --job-id 8d9a18fe-c303-4d39-8ccc-860d372da386 \
    --priority 52
```
输出：  

```
{
    "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386",
    "Priority": 52
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[UpdateJobPriority](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/update-job-priority.html)*中的。

### `update-job-status`
<a name="s3-control_UpdateJobStatus_cli_2_topic"></a>

以下代码示例演示了如何使用 `update-job-status`。

**AWS CLI**  
**更新 Amazon S3 批量操作任务的状态**  
以下 `update-job-status` 示例取消正在等待批准的指定任务。  

```
aws s3control update-job-status \
    --account-id 123456789012 \
    --job-id 8d9a18fe-c303-4d39-8ccc-860d372da386 \
    --requested-job-status Cancelled
```
输出：  

```
{
    "Status": "Cancelled",
    "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386"
}
```
以下 `update-job-status` 示例确认并运行正在等待批准的指定任务。  

```
aws s3control update-job-status \
    --account-id 123456789012 \
    --job-id 5782949f-3301-4fb3-be34-8d5bab54dbca \
    --requested-job-status Ready

Output::

{
    "Status": "Ready",
    "JobId": "5782949f-3301-4fb3-be34-8d5bab54dbca"
}
```
以下 `update-job-status` 示例取消正在运行的指定任务。  

```
 aws s3control update-job-status \
    --account-id 123456789012 \
    --job-id 5782949f-3301-4fb3-be34-8d5bab54dbca \
    --requested-job-status Cancelled

Output::
{
         "Status": "Cancelling",
         "JobId": "5782949f-3301-4fb3-be34-8d5bab54dbca"
}
```
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[UpdateJobStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/update-job-status.html)*中的。