本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 控制示例 AWS CLI
以下代码示例向您展示了如何使用 AWS Command Line Interface 与 Amazon S3 Control 配合使用来执行操作和实现常见场景。
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例显示了如何使用create-access-point
。
- AWS CLI
-
创建接入点
以下
create-access-point
示例为账户 123456789012business-records
中的存储桶创建了一个名finance-ap
为的接入点。在运行此示例之前,请将接入点名称、存储桶名称和账号替换为适合您的用例的值。aws s3control create-access-point \ --account-id
123456789012
\ --bucketbusiness-records
\ --namefinance-ap
此命令不生成任何输出。
有关更多信息,请参阅《Amazon 简单存储服务开发者指南》中的创建接入点。
-
有关API详细信息,请参阅 “CreateAccessPoint AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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"}}
' \ --priority42
\ --role-arnarn:aws:iam::123456789012:role/S3BatchJobRole
输出:
{ "JobId": "93735294-df46-44d5-8638-6356f335324e" }
-
有关API详细信息,请参阅 “CreateJob AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-access-point-policy
。
- AWS CLI
-
删除接入点策略
以下
delete-access-point-policy
示例从账户 123456789012 中命名的接入点finance-ap
中删除接入点策略。在运行此示例之前,请将接入点名称和账号替换为适合您的用例的值。aws s3control delete-access-point-policy \ --account-id
123456789012
\ --namefinance-ap
此命令不生成任何输出。
有关更多信息,请参阅《亚马逊简单存储服务开发者指南》中的使用 Amazon S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “DeleteAccessPointPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-access-point
。
- AWS CLI
-
删除接入点
以下
delete-access-point
示例删除了账户 123456789012finance-ap
中名为的接入点。在运行此示例之前,请将接入点名称和账号替换为适合您的用例的值。aws s3control delete-access-point \ --account-id
123456789012
\ --namefinance-ap
此命令不生成任何输出。
有关更多信息,请参阅《亚马逊简单存储服务开发者指南》中的使用 Amazon S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “DeleteAccessPoint AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-public-access-block
。
- AWS CLI
-
删除账户的封锁公共访问设置
以下
delete-public-access-block
示例删除了指定账户的封禁公共访问设置。aws s3control delete-public-access-block \ --account-id
123456789012
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeletePublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用describe-job
。
- AWS CLI
-
描述 Amazon S3 批量操作任务
以下内容
describe-job
提供了指定批处理作业的配置参数和状态。aws s3control describe-job \ --account-id
123456789012
\ --job-id93735294-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详细信息,请参阅 “DescribeJob AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-access-point-policy-status
。
- AWS CLI
-
检索接入点策略状态
以下
get-access-point-policy-status
示例检索账户 123456789012finance-ap
中命名的接入点的接入点策略状态。接入点策略状态表明接入点的策略是否允许公共访问。在运行此示例之前,请将接入点名称和账号替换为适合您的用例的值。aws s3control get-access-point-policy-status \ --account-id
123456789012
\ --namefinance-ap
输出:
{ "PolicyStatus": { "IsPublic": false } }
有关何时将接入点策略视为公开的更多信息,请参阅《Amazon 简单存储服务开发者指南》中的 “公开” 的含义。
-
有关API详细信息,请参阅 “GetAccessPointPolicyStatus AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-access-point-policy
。
- AWS CLI
-
检索接入点策略
以下
get-access-point-policy
示例从账户 123456789012 中命名的接入点检索接finance-ap
入点策略。在运行此示例之前,请将接入点名称和账号替换为适合您的用例的值。aws s3control get-access-point-policy \ --account-id
123456789012
\ --namefinance-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 S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “GetAccessPointPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-access-point
。
- AWS CLI
-
检索接入点配置详细信息
以下
get-access-point
示例检索账户 123456789012finance-ap
中命名的接入点的配置详细信息。在运行此示例之前,请将接入点名称和账号替换为适合您的用例的值。aws s3control get-access-point \ --account-id
123456789012
\ --namefinance-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 S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “GetAccessPoint AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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-id111122223333
\ --mrapMultiRegionAccessPoint_ARN
输出:
{ "Mrap": "arn:aws:s3::111122223333:accesspoint/0000000000000.mrap", "Routes": [ { "Bucket": "DOC-EXAMPLE-BUCKET-1", "Region": "ap-southeast-2", "TrafficDialPercentage": 100 }, { "Bucket": "DOC-EXAMPLE-BUCKET-2", "Region": "us-west-1", "TrafficDialPercentage": 0 } ] }
-
有关API详细信息,请参阅 “GetMultiRegionAccessPointRoutes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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详细信息,请参阅 “GetPublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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
示例检索挂载到账户 123456789012external-docs
拥有的存储桶的所有接入点的列表。aws s3control list-access-points \ --account-id
123456789012
\ --bucketexternal-docs
输出:
{ "AccessPointList": [ { "Name": "customer-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" }, { "Name": "public-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" } ] }
有关更多信息,请参阅《亚马逊简单存储服务开发者指南》中的使用 Amazon S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “ListAccessPoints AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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详细信息,请参阅 “ListJobs AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-access-point-policy
。
- AWS CLI
-
设置接入点策略
以下
put-access-point-policy
示例将接入点的指定接入点策略置于账户 123456789012finance-ap
中。如果接入点finance-ap
已有策略,则此命令将现有策略替换为该命令中指定的策略。在运行此示例之前,请将账号、接入点名称和策略声明替换为适合您的用例的值。aws s3control put-access-point-policy \ --account-id
123456789012
\ --namefinance-ap
\ --policyfile://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 S3 接入点管理数据访问。
-
有关API详细信息,请参阅 “PutAccessPointPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用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详细信息,请参阅 “PutPublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用submit-multi-region-access-point-routes
。
- AWS CLI
-
更新您的多区域接入点路由配置
以下
submit-multi-region-access-point-routes
示例更新了您的多区域接入点的ap-southeast-2
区域DOC-EXAMPLE-BUCKET-2
中DOC-EXAMPLE-BUCKET-1
和区域中的路由状态。aws s3control submit-multi-region-access-point-routes \ --region
ap-southeast-2
\ --account-id111122223333
\ --mrapMultiRegionAccessPoint_ARN
\ --route-updatesBucket=DOC-EXAMPLE-BUCKET-1,TrafficDialPercentage=100
Bucket=DOC-EXAMPLE-BUCKET-2,TrafficDialPercentage=0
此命令不生成任何输出。
-
有关API详细信息,请参阅 “SubmitMultiRegionAccessPointRoutes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用update-job-priority
。
- AWS CLI
-
更新 Amazon S3 批处理操作任务的任务优先级
以下
update-job-priority
示例将指定的任务更新为新的优先级。aws s3control update-job-priority \ --account-id
123456789012
\ --job-id8d9a18fe-c303-4d39-8ccc-860d372da386
\ --priority52
输出:
{ "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386", "Priority": 52 }
-
有关API详细信息,请参阅 “UpdateJobPriority AWS CLI
命令参考”。
-
以下代码示例显示了如何使用update-job-status
。
- AWS CLI
-
更新 Amazon S3 批处理操作任务的状态
以下
update-job-status
示例取消了正在等待批准的指定任务。aws s3control update-job-status \ --account-id
123456789012
\ --job-id8d9a18fe-c303-4d39-8ccc-860d372da386
\ --requested-job-statusCancelled
输出:
{ "Status": "Cancelled", "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386" }
以下
update-job-status
示例确认并运行正在等待批准的指定内容。aws s3control update-job-status \ --account-id
123456789012
\ --job-id5782949f-3301-4fb3-be34-8d5bab54dbca
\ --requested-job-statusReady
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详细信息,请参阅 “UpdateJobStatus AWS CLI
命令参考”。
-