使用Amazon CLI的 Amazon S3 示例
以下代码示例演示了如何通过将 Amazon Command Line Interface与 Amazon S3 结合使用,来执行操作和实现常见场景。
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示了如何使用 abort-multipart-upload。
- Amazon CLI
-
中止指定的分段上传
以下
abort-multipart-upload命令中止存储桶amzn-s3-demo-bucket中键multipart/01的分段上传:aws s3api abort-multipart-upload \ --bucketamzn-s3-demo-bucket\ --keymultipart/01\ --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R此命令所需的上传 ID 由
create-multipart-upload输出,也可以使用list-multipart-uploads进行检索。-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 AbortMultipartUpload
。
-
以下代码示例演示了如何使用 complete-multipart-upload。
- Amazon CLI
-
以下命令完成存储桶
amzn-s3-demo-bucket中密钥multipart/01的分段上传:aws s3api complete-multipart-upload --multipart-uploadfile://mpustruct--bucketamzn-s3-demo-bucket--key 'multipart/01' --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.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 详细信息,请参阅《Amazon CLI 命令参考》中的 CompleteMultipartUpload
。
-
以下代码示例演示了如何使用 copy-object。
- Amazon CLI
-
以下命令将对象从
bucket-1复制到bucket-2:aws s3api copy-object --copy-sourcebucket-1/test.txt--keytest.txt--bucketbucket-2输出:
{ "CopyObjectResult": { "LastModified": "2015-11-10T01:07:25.000Z", "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\"" }, "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA" }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 CopyObject
。
-
以下代码示例演示了如何使用 cp。
- Amazon CLI
-
示例 1:将本地文件复制到 S3
以下
cp命令会将单个文件复制到指定的存储桶和密钥:aws s3 cptest.txts3://amzn-s3-demo-bucket/test2.txt输出:
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt示例 2:将本地文件复制到 S3,并设置到期日期
以下
cp命令会将单个文件复制到指定的存储桶和密钥,并在指定的 ISO 8601 时间戳到期:aws s3 cptest.txts3://amzn-s3-demo-bucket/test2.txt\ --expires2014-10-01T20:30:00Z输出:
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt示例 3:将文件从 S3 复制到 S3
以下
cp命令会将单个 S3 对象复制到指定的存储桶和密钥:aws s3 cps3://amzn-s3-demo-bucket/test.txts3://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 cps3://amzn-s3-demo-bucket/test.txttest2.txt输出:
download: s3://amzn-s3-demo-bucket/test.txt to test2.txt示例 5:将 S3 对象从一个存储桶复制到另一个存储桶
以下
cp命令会将单个对象复制到指定的存储桶,同时保留其原始名称:aws s3 cps3://amzn-s3-demo-bucket/test.txts3://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 cps3://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 cpmyDirs3://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 cps3://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 cps3://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 cps3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt\ --aclpublic-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-namemyuser\ --policy-namemypolicy输出:
{ "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 cpfile.txts3://amzn-s3-demo-bucket/--grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsersfull=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-size54760833024示例 13:将 S3 对象下载为本地文件流
PowerShell 可能会更改管道或重定向输出的编码或向其添加 CRLF。
以下
cp命令会将 S3 对象作为流下载到本地标准输出。以流形式下载目前与--recursive参数不兼容:aws s3 cps3://amzn-s3-demo-bucket/stream.txt-示例 14:上传到 S3 接入点
以下
cp命令会将单个文件(mydoc.txt)上传到密钥(mykey)处的接入点(myaccesspoint):aws s3 cpmydoc.txts3://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 cps3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykeymydoc.txt输出:
download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Cp
。
-
以下代码示例演示了如何使用 create-bucket。
- Amazon CLI
-
示例 1:创建存储桶
以下
create-bucket示例创建一个名为amzn-s3-demo-bucket的存储桶:aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regionus-east-1输出:
{ "Location": "/amzn-s3-demo-bucket" }有关更多信息,请参阅《Amazon S3 用户指南》中的创建存储桶。
示例 2:创建带有强制拥有者的存储桶
以下
create-bucket示例创建一个名为amzn-s3-demo-bucket的存储桶,该存储桶对于 S3 对象所有权使用强制存储桶拥有者设置。aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regionus-east-1\ --object-ownershipBucketOwnerEnforced输出:
{ "Location": "/amzn-s3-demo-bucket" }有关更多信息,请参阅《Amazon S3 用户指南》中的控制对象所有权和禁用 ACL。
示例 3:在“us-east-1”区域之外创建存储桶
以下
create-bucket示例在eu-west-1区域中创建名为amzn-s3-demo-bucket的存储桶。us-east-1之外的区域需要指定相应的LocationConstraint才能在所需区域创建存储桶。aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regioneu-west-1\ --create-bucket-configurationLocationConstraint=eu-west-1输出:
{ "Location": "http://amzn-s3-demo-bucket.s3.amazonaws.com/" }有关更多信息,请参阅《Amazon S3 用户指南》中的创建存储桶。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 CreateBucket
。
-
以下代码示例演示了如何使用 create-multipart-upload。
- Amazon CLI
-
以下命令在存储桶
amzn-s3-demo-bucket中创建带有密钥multipart/01的分段上传:aws s3api create-multipart-upload --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 CreateMultipartUpload
。
-
以下代码示例演示了如何使用 delete-bucket-analytics-configuration。
- Amazon CLI
-
删除存储桶的分析配置
以下
delete-bucket-analytics-configuration示例移除指定存储桶和 ID 的分析配置。aws s3api delete-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket\ --id1此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketAnalyticsConfiguration
。
-
以下代码示例演示了如何使用 delete-bucket-cors。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除跨源资源共享配置:aws s3api delete-bucket-cors --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketCors
。
-
以下代码示例演示了如何使用 delete-bucket-encryption。
- Amazon CLI
-
删除存储桶的服务器端加密配置
以下
delete-bucket-encryption示例删除指定存储桶的服务器端加密配置。aws s3api delete-bucket-encryption \ --bucketamzn-s3-demo-bucket此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketEncryption
。
-
以下代码示例演示了如何使用 delete-bucket-intelligent-tiering-configuration。
- Amazon CLI
-
移除存储桶上的 S3 智能分层配置
以下
delete-bucket-intelligent-tiering-configuration示例移除存储桶上名为 ExampleConfig 的 S3 智能分层配置。aws s3api delete-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --idExampleConfig此命令不生成任何输出。
有关更多信息,请参阅《Amazon S3 用户指南》中的使用 S3 智能分层。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketIntelligentTieringConfiguration
。
-
以下代码示例演示了如何使用 delete-bucket-inventory-configuration。
- Amazon CLI
-
删除存储桶的清单配置
以下
delete-bucket-inventory-configuration示例删除指定存储桶的 ID 为1的清单配置。aws s3api delete-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketInventoryConfiguration
。
-
以下代码示例演示了如何使用 delete-bucket-lifecycle。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除生命周期配置:aws s3api delete-bucket-lifecycle --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketLifecycle
。
-
以下代码示例演示了如何使用 delete-bucket-metrics-configuration。
- Amazon CLI
-
删除存储桶的指标配置
以下
delete-bucket-metrics-configuration示例移除指定存储桶和 ID 的指标配置。aws s3api delete-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketMetricsConfiguration
。
-
以下代码示例演示了如何使用 delete-bucket-ownership-controls。
- Amazon CLI
-
移除存储桶的存储桶所有权设置
以下
delete-bucket-ownership-controls示例移除存储桶的存储桶所有权设置。aws s3api delete-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket此命令不生成任何输出。
有关更多信息,请参阅《Amazon S3 用户指南》中的设置现有存储桶的对象所有权。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketOwnershipControls
。
-
以下代码示例演示了如何使用 delete-bucket-policy。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除存储桶策略:aws s3api delete-bucket-policy --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketPolicy
。
-
以下代码示例演示了如何使用 delete-bucket-replication。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除复制配置:aws s3api delete-bucket-replication --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketReplication
。
-
以下代码示例演示了如何使用 delete-bucket-tagging。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除标记配置:aws s3api delete-bucket-tagging --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketTagging
。
-
以下代码示例演示了如何使用 delete-bucket-website。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除网站配置:aws s3api delete-bucket-website --bucketamzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucketWebsite
。
-
以下代码示例演示了如何使用 delete-bucket。
- Amazon CLI
-
以下命令删除名为
amzn-s3-demo-bucket的存储桶:aws s3api delete-bucket --bucketamzn-s3-demo-bucket--regionus-east-1-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteBucket
。
-
以下代码示例演示了如何使用 delete-object-tagging。
- Amazon CLI
-
删除对象的标签集
以下
delete-object-tagging示例从对象doc1.rtf中删除带有指定键的标签。aws s3api delete-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteObjectTagging
。
-
以下代码示例演示了如何使用 delete-object。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除名为test.txt的对象:aws s3api delete-object --bucketamzn-s3-demo-bucket--keytest.txt如果启用了存储桶版本控制,则输出将包含删除标记的版本 ID:
{ "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq", "DeleteMarker": true }有关删除对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“删除对象”。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteObject
。
-
以下代码示例演示了如何使用 delete-objects。
- Amazon CLI
-
以下命令从名为
amzn-s3-demo-bucket的存储桶中删除对象:aws s3api delete-objects --bucketamzn-s3-demo-bucket--deletefile://delete.jsondelete.json是当前目录中指定要删除的对象的 JSON 文档:{ "Objects": [ { "Key": "test1.txt" } ], "Quiet": false }输出:
{ "Deleted": [ { "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU", "Key": "test1.txt", "DeleteMarker": true } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeleteObjects
。
-
以下代码示例演示了如何使用 delete-public-access-block。
- Amazon CLI
-
删除存储桶的屏蔽公共访问权限配置
以下
delete-public-access-block示例移除指定存储桶上的屏蔽公共访问权限配置。aws s3api delete-public-access-block \ --bucketamzn-s3-demo-bucket此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 DeletePublicAccessBlock
。
-
以下代码示例演示了如何使用 get-bucket-accelerate-configuration。
- Amazon CLI
-
检索存储桶的加速配置
以下
get-bucket-accelerate-configuration示例检索指定存储桶的加速配置。aws s3api get-bucket-accelerate-configuration \ --bucketamzn-s3-demo-bucket输出:
{ "Status": "Enabled" }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketAccelerateConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-acl。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的访问控制列表:aws s3api get-bucket-acl --bucketamzn-s3-demo-bucket输出:
{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketAcl
。
-
以下代码示例演示了如何使用 get-bucket-analytics-configuration。
- Amazon CLI
-
检索具有特定 ID 的存储桶的分析配置
以下
get-bucket-analytics-configuration示例显示了指定存储桶和 ID 的分析配置。aws s3api get-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket\ --id1输出:
{ "AnalyticsConfiguration": { "StorageClassAnalysis": {}, "Id": "1" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketAnalyticsConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-cors。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的跨源资源共享配置:aws s3api get-bucket-cors --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketCors
。
-
以下代码示例演示了如何使用 get-bucket-encryption。
- Amazon CLI
-
检索存储桶的服务器端加密配置
以下
get-bucket-encryption示例检索存储桶amzn-s3-demo-bucket的服务器端加密配置。aws s3api get-bucket-encryption \ --bucketamzn-s3-demo-bucket输出:
{ "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketEncryption
。
-
以下代码示例演示了如何使用 get-bucket-intelligent-tiering-configuration。
- Amazon CLI
-
检索存储桶上的 S3 智能分层配置
以下
get-bucket-intelligent-tiering-configuration示例检索存储桶上名为 ExampleConfig 的 S3 智能分层配置。aws s3api get-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --idExampleConfig输出:
{ "IntelligentTieringConfiguration": { "Id": "ExampleConfig2", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } }有关更多信息,请参阅《Amazon S3 用户指南》中的使用 S3 智能分层。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketIntelligentTieringConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-inventory-configuration。
- Amazon CLI
-
检索存储桶的清单配置
以下
get-bucket-inventory-configuration示例检索 ID 为1的指定存储桶的清单配置。aws s3api get-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1输出:
{ "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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketInventoryConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-lifecycle-configuration。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的生命周期配置:aws s3api get-bucket-lifecycle-configuration --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketLifecycleConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-lifecycle。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的生命周期配置:aws s3api get-bucket-lifecycle --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketLifecycle
。
-
以下代码示例演示了如何使用 get-bucket-location。
- Amazon CLI
-
如果存在约束条件,则以下命令会检索名为
amzn-s3-demo-bucket的存储桶的位置约束:aws s3api get-bucket-location --bucketamzn-s3-demo-bucket输出:
{ "LocationConstraint": "us-west-2" }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketLocation
。
-
以下代码示例演示了如何使用 get-bucket-logging。
- Amazon CLI
-
检索存储桶的日志记录状态
以下
get-bucket-logging示例检索指定存储桶的日志记录状态。aws s3api get-bucket-logging \ --bucketamzn-s3-demo-bucket输出:
{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "amzn-s3-demo-bucket-logs" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketLogging
。
-
以下代码示例演示了如何使用 get-bucket-metrics-configuration。
- Amazon CLI
-
检索具有特定 ID 的存储桶的指标配置
以下
get-bucket-metrics-configuration示例显示了指定存储桶和 ID 的指标配置。aws s3api get-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123输出:
{ "MetricsConfiguration": { "Filter": { "Prefix": "logs" }, "Id": "123" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketMetricsConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-notification-configuration。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的通知配置:aws s3api get-bucket-notification-configuration --bucketamzn-s3-demo-bucket输出:
{ "TopicConfigurations": [ { "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketNotificationConfiguration
。
-
以下代码示例演示了如何使用 get-bucket-notification。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的通知配置:aws s3api get-bucket-notification --bucketamzn-s3-demo-bucket输出:
{ "TopicConfiguration": { "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "Event": "s3:ObjectCreated:*", "Events": [ "s3:ObjectCreated:*" ] } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketNotification
。
-
以下代码示例演示了如何使用 get-bucket-ownership-controls。
- Amazon CLI
-
检索存储桶的存储桶所有权设置
以下
get-bucket-ownership-controls示例检索存储桶的存储桶所有权设置。aws s3api get-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket输出:
{ "OwnershipControls": { "Rules": [ { "ObjectOwnership": "BucketOwnerEnforced" } ] } }有关更多信息,请参阅《Amazon S3 用户指南》中的查看 S3 存储桶的对象所有权设置。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketOwnershipControls
。
-
以下代码示例演示了如何使用 get-bucket-policy-status。
- Amazon CLI
-
检索存储桶的策略状态,此状态指示存储桶是否为公有存储桶
以下
get-bucket-policy-status示例检索存储桶amzn-s3-demo-bucket的策略状态。aws s3api get-bucket-policy-status \ --bucketamzn-s3-demo-bucket输出:
{ "PolicyStatus": { "IsPublic": false } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketPolicyStatus
。
-
以下代码示例演示了如何使用 get-bucket-policy。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的存储桶策略:aws s3api get-bucket-policy --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketPolicy
。
-
以下代码示例演示了如何使用 get-bucket-replication。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的复制配置:aws s3api get-bucket-replication --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketReplication
。
-
以下代码示例演示了如何使用 get-bucket-request-payment。
- Amazon CLI
-
检索存储桶的请求付款配置
以下
get-bucket-request-payment示例检索指定存储桶的申请方付款配置。aws s3api get-bucket-request-payment \ --bucketamzn-s3-demo-bucket输出:
{ "Payer": "BucketOwner" }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketRequestPayment
。
-
以下代码示例演示了如何使用 get-bucket-tagging。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的标记配置:aws s3api get-bucket-tagging --bucketamzn-s3-demo-bucket输出:
{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketTagging
。
-
以下代码示例演示了如何使用 get-bucket-versioning。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的版本控制配置:aws s3api get-bucket-versioning --bucketamzn-s3-demo-bucket输出:
{ "Status": "Enabled" }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketVersioning
。
-
以下代码示例演示了如何使用 get-bucket-website。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶的静态网站配置:aws s3api get-bucket-website --bucketamzn-s3-demo-bucket输出:
{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetBucketWebsite
。
-
以下代码示例演示了如何使用 get-object-acl。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶中对象的访问控制列表:aws s3api get-object-acl --bucketamzn-s3-demo-bucket--keyindex.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 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectAcl
。
-
以下代码示例演示了如何使用 get-object-attributes。
- Amazon CLI
-
从对象检索元数据而不返回对象本身
以下
get-object-attributes示例从对象doc1.rtf检索元数据。aws s3api get-object-attributes \ --bucketamzn-s3-demo-bucket\ --keydoc1.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。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectAttributes
。
-
以下代码示例演示了如何使用 get-object-legal-hold。
- Amazon CLI
-
检索对象的法定保留状态
以下
get-object-legal-hold示例检索指定对象的法定保留状态。aws s3api get-object-legal-hold \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf输出:
{ "LegalHold": { "Status": "ON" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectLegalHold
。
-
以下代码示例演示了如何使用 get-object-lock-configuration。
- Amazon CLI
-
检索存储桶的对象锁定配置
以下
get-object-lock-configuration示例检索指定存储桶的对象锁定配置。aws s3api get-object-lock-configuration \ --bucketamzn-s3-demo-bucket-with-object-lock输出:
{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 } } } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectLockConfiguration
。
-
以下代码示例演示了如何使用 get-object-retention。
- Amazon CLI
-
检索对象的对象保留配置
以下
get-object-retention示例检索指定对象的对象保留配置。aws s3api get-object-retention \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf输出:
{ "Retention": { "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00.000Z" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectRetention
。
-
以下代码示例演示了如何使用 get-object-tagging。
- Amazon CLI
-
检索附加到对象的标签
以下
get-object-tagging示例从指定的对象中检索指定键的值。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf输出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" } ] }以下
get-object-tagging示例尝试检索没有标签的对象doc2.rtf的标签集。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc2.rtf输出:
{ "TagSet": [] }以下
get-object-tagging示例检索具有多个标签的对象doc3.rtf的标签集。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc3.rtf输出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" }, { "Value": "finance", "Key": "department" }, { "Value": "payroll", "Key": "team" } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectTagging
。
-
以下代码示例演示了如何使用 get-object-torrent。
- Amazon CLI
-
以下命令为名为
amzn-s3-demo-bucket的存储桶中的对象创建种子文件:aws s3api get-object-torrent --bucketamzn-s3-demo-bucket--keylarge-video-file.mp4large-video-file.torrent种子文件保存在本地的当前文件夹中。请注意,指定输出 filename(
large-video-file.torrent)时没有选项名称,并且必须是命令中的最后一个参数。-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObjectTorrent
。
-
以下代码示例演示了如何使用 get-object。
- Amazon CLI
-
以下示例使用
get-object命令从 Amazon S3 下载对象:aws s3api get-object --buckettext-content--keydir/my_images.tar.bz2my_images.tar.bz2请注意,指定 outfile 参数时没有诸如“--outfile”之类的选项名称。输出文件的名称必须是命令中的最后一个参数。
以下示例演示了如何使用
--range从对象下载特定字节范围。请注意,字节范围需要以“bytes=”为前缀:aws s3api get-object --buckettext-content--keydir/my_data--rangebytes=8888-9999my_data_range有关检索对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“获取对象”。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetObject
。
-
以下代码示例演示了如何使用 get-public-access-block。
- Amazon CLI
-
设置或修改存储桶的屏蔽公共访问权限配置
以下
get-public-access-block示例显示了指定存储桶的屏蔽公共访问权限配置。aws s3api get-public-access-block \ --bucketamzn-s3-demo-bucket输出:
{ "PublicAccessBlockConfiguration": { "IgnorePublicAcls": true, "BlockPublicPolicy": true, "BlockPublicAcls": true, "RestrictPublicBuckets": true } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetPublicAccessBlock
。
-
以下代码示例演示了如何使用 head-bucket。
- Amazon CLI
-
以下命令验证对名为
amzn-s3-demo-bucket的存储桶的访问权限:aws s3api head-bucket --bucketamzn-s3-demo-bucket如果存储桶存在并且您可以访问它,则不返回任何输出。否则,会显示错误消息。例如:
A client error (404) occurred when calling the HeadBucket operation: Not Found-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 HeadBucket
。
-
以下代码示例演示了如何使用 head-object。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶中对象的元数据:aws s3api head-object --bucketamzn-s3-demo-bucket--keyindex.html输出:
{ "AcceptRanges": "bytes", "ContentType": "text/html", "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT", "ContentLength": 77, "VersionId": "null", "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"", "Metadata": {} }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 HeadObject
。
-
以下代码示例演示了如何使用 list-bucket-analytics-configurations。
- Amazon CLI
-
检索存储桶的分析配置列表
下面的
list-bucket-analytics-configurations检索指定存储桶的分析配置列表。aws s3api list-bucket-analytics-configurations \ --bucketamzn-s3-demo-bucket输出:
{ "AnalyticsConfigurationList": [ { "StorageClassAnalysis": {}, "Id": "1" } ], "IsTruncated": false }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListBucketAnalyticsConfigurations
。
-
以下代码示例演示了如何使用 list-bucket-intelligent-tiering-configurations。
- Amazon CLI
-
检索存储桶上的所有 S3 智能分层配置
以下
list-bucket-intelligent-tiering-configurations示例检索存储桶上的所有 S3 智能分层配置。aws s3api list-bucket-intelligent-tiering-configurations \ --bucketamzn-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 智能分层。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListBucketIntelligentTieringConfigurations
。
-
以下代码示例演示了如何使用 list-bucket-inventory-configurations。
- Amazon CLI
-
检索存储桶的清单配置列表
以下
list-bucket-inventory-configurations示例列出了指定存储桶的清单配置。aws s3api list-bucket-inventory-configurations \ --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 ListBucketInventoryConfigurations
。
-
以下代码示例演示了如何使用 list-bucket-metrics-configurations。
- Amazon CLI
-
检索存储桶的指标配置列表
以下
list-bucket-metrics-configurations示例检索指定存储桶的指标配置列表。aws s3api list-bucket-metrics-configurations \ --bucketamzn-s3-demo-bucket输出:
{ "IsTruncated": false, "MetricsConfigurationList": [ { "Filter": { "Prefix": "logs" }, "Id": "123" }, { "Filter": { "Prefix": "tmp" }, "Id": "234" } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListBucketMetricsConfigurations
。
-
以下代码示例演示了如何使用 list-buckets。
- Amazon CLI
-
以下命令使用
list-buckets命令显示所有 Amazon S3 存储桶的名称(跨所有区域):aws s3api list-buckets --query"Buckets[].Name"查询选项会筛选
list-buckets的输出,使其范围缩小到仅限存储桶名称。有关存储桶的更多信息,请参阅《Amazon S3 开发人员指南》中的“使用 Amazon S3 存储桶”。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListBuckets
。
-
以下代码示例演示了如何使用 list-multipart-uploads。
- Amazon CLI
-
以下命令列出名为
amzn-s3-demo-bucket的存储桶的所有活动分段上传:aws s3api list-multipart-uploads --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 ListMultipartUploads
。
-
以下代码示例演示了如何使用 list-object-versions。
- Amazon CLI
-
以下命令检索名为
amzn-s3-demo-bucket的存储桶中对象的版本信息:aws s3api list-object-versions --bucketamzn-s3-demo-bucket--prefixindex.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 详细信息,请参阅《Amazon CLI 命令参考》中的 ListObjectVersions
。
-
以下代码示例演示了如何使用 list-objects-v2。
- Amazon CLI
-
获取存储桶中对象的列表
以下
list-objects-v2示例列出了指定存储桶中的对象。aws s3api list-objects-v2 \ --bucketamzn-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 详细信息,请参阅《Amazon CLI 命令参考》中的 ListObjectsV2
。
-
以下代码示例演示了如何使用 list-objects。
- Amazon CLI
-
以下示例使用
list-objects命令显示指定存储桶中所有对象的名称:aws s3api list-objects --buckettext-content--query 'Contents[].{Key: Key, Size: Size}'该示例使用
--query参数筛选list-objects的输出,使其范围缩小到每个对象的键值和大小有关对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“使用 Amazon S3 对象”。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListObjects
。
-
以下代码示例演示了如何使用 list-parts。
- Amazon CLI
-
以下命令列出存储桶
amzn-s3-demo-bucket中,使用密钥multipart/01的分段上传中已上传的所有部分:aws s3api list-parts --bucketamzn-s3-demo-bucket--key 'multipart/01' --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.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 详细信息,请参阅《Amazon CLI 命令参考》中的 ListParts
。
-
以下代码示例演示了如何使用 ls。
- Amazon 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 lss3://amzn-s3-demo-bucket输出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt示例 3:列出特定存储桶和前缀中的所有前缀和对象
以下
ls命令列出指定存储桶和前缀下的对象和常用前缀。但是,指定的存储桶和前缀下没有对象,也没有常用前缀。aws s3 lss3://amzn-s3-demo-bucket/noExistPrefix输出:
None示例 4:递归列出存储桶中的所有前缀和对象
以下
ls命令将递归列出存储桶中的对象。输出中将不再显示PRE dirname/,而是按顺序列出存储桶中的所有内容。aws s3 lss3://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 和 --summarize 选项演示了相同的命令。--human readable 会以 Bytes/MiB/KiB/GiB/TiB/PiB/EiB 为单位显示文件大小。--summarize 会在结果列表的末尾显示对象的总数和总大小:aws s3 lss3://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 lss3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/输出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Ls
。
-
以下代码示例演示了如何使用 mb。
- Amazon CLI
-
示例 1:创建存储桶
以下
mb命令创建存储桶。在此示例中,用户创建了存储桶amzn-s3-demo-bucket。存储桶可在用户配置文件中指定的区域内创建:aws s3 mbs3://amzn-s3-demo-bucket输出:
make_bucket: s3://amzn-s3-demo-bucket示例 2:在指定区域内创建存储桶
以下
mb命令在--region参数指定的区域内创建一个存储桶。在此示例中,用户在区域us-west-1内创建了存储桶amzn-s3-demo-bucket:aws s3 mbs3://amzn-s3-demo-bucket\ --regionus-west-1输出:
make_bucket: s3://amzn-s3-demo-bucket-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Mb
。
-
以下代码示例演示了如何使用 mv。
- Amazon CLI
-
示例 1:将本地文件移动到指定的存储桶
以下
mv命令将单个文件移动到指定的存储桶和密钥。aws s3 mvtest.txts3://amzn-s3-demo-bucket/test2.txt输出:
move: test.txt to s3://amzn-s3-demo-bucket/test2.txt示例 2:将对象移动到指定的存储桶和密钥
以下
mv命令将单个 S3 对象移动到指定的存储桶和密钥。aws s3 mvs3://amzn-s3-demo-bucket/test.txts3://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 mvs3://amzn-s3-demo-bucket/test.txttest2.txt输出:
move: s3://amzn-s3-demo-bucket/test.txt to test2.txt示例 4:将具有原始名称的对象移动到指定的存储桶
以下
mv命令将单个对象移动到指定的存储桶,同时保留其原始名称:aws s3 mvs3://amzn-s3-demo-bucket/test.txts3://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 mvs3://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 mvmyDirs3://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 mvs3://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 mvs3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt\ --aclpublic-read-write输出:
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt示例 9:将本地文件移动到指定的存储桶并授予权限
以下
mv命令说明如何使用--grants选项向所有用户授予读取权限,并向通过电子邮件地址识别的特定用户授予完全控制权限。aws s3 mvfile.txts3://amzn-s3-demo-bucket/\ --grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsersfull=emailaddress=user@example.com输出:
move: file.txt to s3://amzn-s3-demo-bucket/file.txt示例 10:将文件移动到 S3 接入点
以下
mv命令将名为mydoc.txt的单个文件移动到名为mykey的密钥下的名为myaccesspoint的接入点。aws s3 mvmydoc.txts3://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 详细信息,请参阅《Amazon CLI 命令参考》中的 Mv
。
-
以下代码示例演示了如何使用 presign。
- Amazon CLI
-
示例 1:创建默认生命周期为一小时的预签名 URL,链接到 S3 存储桶中的对象
以下
presign命令为指定的存储桶和密钥生成一个预签名 URL,有效期为一小时。aws s3 presigns3://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 presigns3://amzn-s3-demo-bucket/test2.txt\ --expires-in604800输出:
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 开发人员指南》中的与其他用户共享对象。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Presign
。
-
以下代码示例演示了如何使用 put-bucket-accelerate-configuration。
- Amazon CLI
-
设置存储桶的加速配置
以下
put-bucket-accelerate-configuration示例启用指定存储桶的加速配置。aws s3api put-bucket-accelerate-configuration \ --bucketamzn-s3-demo-bucket\ --accelerate-configurationStatus=Enabled此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketAccelerateConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-acl。
- Amazon CLI
-
此示例向两个 Amazon 用户(user1@example.com 和user2@example.com)授予
full control权限,并向所有人授予read权限:aws s3api put-bucket-acl --bucketamzn-s3-demo-bucket--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers有关自定义 ACL(s3api ACL 命令(如
put-bucket-acl)使用相同的速记参数表示法)的详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html。-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketAcl
。
-
以下代码示例演示了如何使用 put-bucket-analytics-configuration。
- Amazon CLI
-
设置存储桶的分析配置
以下
put-bucket-analytics-configuration示例启用指定存储桶的分析配置。aws s3api put-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket--id1\ --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketAnalyticsConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-cors。
- Amazon CLI
-
以下示例启用来自 www.example.com 的
PUT、POST和DELETE请求,并启用来自任何域的GET请求:aws s3api put-bucket-cors --bucketamzn-s3-demo-bucket--cors-configurationfile://cors.jsoncors.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 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketCors
。
-
以下代码示例演示了如何使用 put-bucket-encryption。
- Amazon CLI
-
配置存储桶的服务器端加密
以下
put-bucket-encryption示例将 AES256 加密设置为指定存储桶的默认值。aws s3api put-bucket-encryption \ --bucketamzn-s3-demo-bucket\ --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketEncryption
。
-
以下代码示例演示了如何使用 put-bucket-intelligent-tiering-configuration。
- Amazon CLI
-
更新存储桶上的 S3 智能分层配置
以下
put-bucket-intelligent-tiering-configuration示例更新存储桶上名为 ExampleConfig 的 S3 智能分层配置。该配置会在 90 天后将前缀映像下未曾访问过的对象过渡到归档访问层,并在 180 天后过渡到深度归档访问层。aws s3api put-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --id"ExampleConfig"\ --intelligent-tiering-configurationfile://intelligent-tiering-configuration.jsonintelligent-tiering-configuration.json的内容:{ "Id": "ExampleConfig", "Status": "Enabled", "Filter": { "Prefix": "images" }, "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }此命令不生成任何输出。
有关更多信息,请参阅《Amazon S3 用户指南》中的设置现有存储桶的对象所有权。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketIntelligentTieringConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-inventory-configuration。
- Amazon CLI
-
示例 1:为存储桶设置清单配置
以下
put-bucket-inventory-configuration示例为存储桶amzn-s3-demo-bucket设置 ORC 格式的每周清单报告。aws s3api put-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1\ --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 \ --bucketamzn-s3-demo-bucket\ --id2\ --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 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketInventoryConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-lifecycle-configuration。
- Amazon CLI
-
以下命令将生命周期配置应用于名为
amzn-s3-demo-bucket的存储桶:aws s3api put-bucket-lifecycle-configuration --bucketamzn-s3-demo-bucket--lifecycle-configurationfile://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。有关可接受时间戳格式的信息,请参阅《Amazon CLI 用户指南》中的“指定参数值”。-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketLifecycleConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-lifecycle。
- Amazon CLI
-
以下命令将生命周期配置应用于存储桶
amzn-s3-demo-bucket:aws s3api put-bucket-lifecycle --bucketamzn-s3-demo-bucket--lifecycle-configurationfile://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 中删除文件。有关可接受时间戳格式的信息,请参阅《Amazon CLI 用户指南》中的“指定参数值”。
上面示例中的每条规则都指定了其适用的策略(
Transition或Expiration)和文件前缀(文件夹名称)。您还可以通过指定空白前缀来创建适用于整个存储桶的规则:{ "Rules": [ { "ID": "Move to Glacier after sixty days (all objects in bucket)", "Prefix": "", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } } ] }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketLifecycle
。
-
以下代码示例演示了如何使用 put-bucket-logging。
- Amazon CLI
-
示例 1:设置存储桶策略日志记录
以下
put-bucket-logging示例为 amzn-s3-demo-bucket 设置日志记录策略。首先,使用put-bucket-policy命令在存储桶策略中向日志记录服务主体授予权限。aws s3api put-bucket-policy \ --bucketamzn-s3-demo-bucket\ --policyfile://policy.jsonpolicy.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 \ --bucketamzn-s3-demo-bucket\ --bucket-logging-statusfile://logging.jsonlogging.json的内容:{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "Logs/" } }向日志记录服务主体授予
s3:PutObject权限需要使用put-bucket-policy命令。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 Amazon S3 服务器访问日志记录。
示例 2:设置仅向单个用户授予日志访问权限的存储桶策略
以下
put-bucket-logging示例为 amzn-s3-demo-bucket 设置日志记录策略。Amazon 用户 bob@example.com 将对日志文件具有完全控制权限,其他人没有任何访问权限。首先,使用put-bucket-acl授予 S3 权限。aws s3api put-bucket-acl \ --bucketamzn-s3-demo-bucket\ --grant-writeURI=http://acs.amazonaws.com/groups/s3/LogDelivery\ --grant-read-acpURI=http://acs.amazonaws.com/groups/s3/LogDelivery然后,使用
put-bucket-logging应用日志记录策略。aws s3api put-bucket-logging \ --bucketamzn-s3-demo-bucket\ --bucket-logging-statusfile://logging.jsonlogging.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 服务器访问日志记录。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketLogging
。
-
以下代码示例演示了如何使用 put-bucket-metrics-configuration。
- Amazon CLI
-
设置存储桶的指标配置
以下
put-bucket-metrics-configuration示例为指定存储桶设置 ID 为 123 的指标配置。aws s3api put-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123\ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketMetricsConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-notification-configuration。
- Amazon CLI
-
启用存储桶的指定通知
以下
put-bucket-notification-configuration示例将通知配置应用于名为amzn-s3-demo-bucket的存储桶。文件notification.json是当前文件夹中的一个 JSON 文件,用于指定 SNS 主题和要监控的事件类型。aws s3api put-bucket-notification-configuration \ --bucketamzn-s3-demo-bucket\ --notification-configurationfile://notification.jsonnotification.json的内容:{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }SNS 主题必须附加一个 IAM 策略,以允许 Amazon S3 向其发布。
{ "Version": "2008-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 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketNotificationConfiguration
。
-
以下代码示例演示了如何使用 put-bucket-notification。
- Amazon CLI
-
将通知配置应用于名为
amzn-s3-demo-bucket的存储桶:aws s3api put-bucket-notification --bucketamzn-s3-demo-bucket--notification-configurationfile://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": "2008-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 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketNotification
。
-
以下代码示例演示了如何使用 put-bucket-ownership-controls。
- Amazon CLI
-
更新存储桶的存储桶所有权设置
以下
put-bucket-ownership-controls示例更新存储桶的存储桶所有权设置。aws s3api put-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket\ --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"此命令不生成任何输出。
有关更多信息,请参阅《Amazon S3 用户指南》中的设置现有存储桶的对象所有权。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketOwnershipControls
。
-
以下代码示例演示了如何使用 put-bucket-policy。
- Amazon CLI
-
此示例允许所有用户检索 amzn-s3-demo-bucket 中的任何对象,但 MySecretFolder 中的对象除外。它还向 Amazon 账户
1234-5678-9012的根用户授予put和delete权限:aws s3api put-bucket-policy --bucketamzn-s3-demo-bucket--policyfile://policy.jsonpolicy.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 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketPolicy
。
-
以下代码示例演示了如何使用 put-bucket-replication。
- Amazon CLI
-
为 S3 存储桶配置复制
以下
put-bucket-replication示例将复制配置应用于指定的 S3 存储桶。aws s3api put-bucket-replication \ --bucketamzn-s3-demo-bucket1\ --replication-configurationfile://replication.jsonreplication.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 控制台用户指南》中的这是主题标题:
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketReplication
。
-
以下代码示例演示了如何使用 put-bucket-request-payment。
- Amazon CLI
-
示例 1:为存储桶启用“申请方付款”配置
以下
put-bucket-request-payment示例为指定的存储桶启用requester pays。aws s3api put-bucket-request-payment \ --bucketamzn-s3-demo-bucket\ --request-payment-configuration '{"Payer":"Requester"}'此命令不生成任何输出。
示例 2:为存储桶禁用“申请方付款”配置
以下
put-bucket-request-payment示例为指定的存储桶禁用requester pays。aws s3api put-bucket-request-payment \ --bucketamzn-s3-demo-bucket\ --request-payment-configuration '{"Payer":"BucketOwner"}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketRequestPayment
。
-
以下代码示例演示了如何使用 put-bucket-tagging。
- Amazon CLI
-
以下命令将标记配置应用于名为
amzn-s3-demo-bucket的存储桶:aws s3api put-bucket-tagging --bucketamzn-s3-demo-bucket--taggingfile://tagging.json文件
tagging.json是当前文件夹中指定标签的 JSON 文档:{ "TagSet": [ { "Key": "organization", "Value": "marketing" } ] }或者,直接从命令行将标记配置应用于
amzn-s3-demo-bucket:aws s3api put-bucket-tagging --bucketamzn-s3-demo-bucket--tagging 'TagSet=[{Key=organization,Value=marketing}]'-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketTagging
。
-
以下代码示例演示了如何使用 put-bucket-versioning。
- Amazon CLI
-
以下命令对于名为
amzn-s3-demo-bucket的存储桶启用版本控制。aws s3api put-bucket-versioning --bucketamzn-s3-demo-bucket--versioning-configurationStatus=Enabled以下命令启用版本控制,并使用 mfa 代码
aws s3api put-bucket-versioning --bucketamzn-s3-demo-bucket--versioning-configurationStatus=Enabled--mfa"SERIAL 123456"-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketVersioning
。
-
以下代码示例演示了如何使用 put-bucket-website。
- Amazon CLI
-
将静态网站配置应用于名为
amzn-s3-demo-bucket的存储桶:aws s3api put-bucket-website --bucketamzn-s3-demo-bucket--website-configurationfile://website.json文件
website.json是当前文件夹中的一个 JSON 文档,用于指定网站的索引和错误页面:{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutBucketWebsite
。
-
以下代码示例演示了如何使用 put-object-acl。
- Amazon CLI
-
以下示例向两个 Amazon 用户(user1@example.com 和user2@example.com)授予
full control,并向所有人授予read:aws s3api put-object-acl --bucketamzn-s3-demo-bucket--keyfile.txt--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers有关自定义 ACL(s3api ACL 命令(如
put-object-acl)使用相同的速记参数表示法)的详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html。-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObjectAcl
。
-
以下代码示例演示了如何使用 put-object-legal-hold。
- Amazon CLI
-
对对象应用法定保留
以下
put-object-legal-hold示例在doc1.rtf对象上设置了法定保留。aws s3api put-object-legal-hold \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf\ --legal-holdStatus=ON此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObjectLegalHold
。
-
以下代码示例演示了如何使用 put-object-lock-configuration。
- Amazon CLI
-
在存储桶上设置对象锁定配置
以下
put-object-lock-configuration示例在指定存储桶上设置了 50 天的对象锁定。aws s3api put-object-lock-configuration \ --bucketamzn-s3-demo-bucket-with-object-lock\ --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObjectLockConfiguration
。
-
以下代码示例演示了如何使用 put-object-retention。
- Amazon CLI
-
为对象设置对象保留配置
以下
put-object-retention示例为指定对象设置直到 2025 年 1 月 1 日的对象保留配置。aws s3api put-object-retention \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf\ --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObjectRetention
。
-
以下代码示例演示了如何使用 put-object-tagging。
- Amazon CLI
-
为对象设置标签
以下
put-object-tagging示例会在指定对象上设置带有键designation和值confidential的标签。aws s3api put-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}'此命令不生成任何输出。
以下
put-object-tagging示例在指定对象上设置多个标签集。aws s3api put-object-tagging \ --bucketamzn-s3-demo-bucket-example\ --keydoc3.rtf\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}'此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObjectTagging
。
-
以下代码示例演示了如何使用 put-object。
- Amazon CLI
-
示例 1:将对象上传到 Amazon S3
以下
put-object命令示例将对象上传到 Amazon S3。aws s3api put-object \ --bucketamzn-s3-demo-bucket\ --keymy-dir/MySampleImage.png\ --bodyMySampleImage.png有关上传对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“上传对象”<http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html>。
示例 2:将视频文件上传到 Amazon S3
以下
put-object命令示例上传视频文件。aws s3api put-object \ --bucketamzn-s3-demo-bucket\ --keymy-dir/big-video-file.mp4\ --body/media/videos/f-sharp-3-data-services.mp4有关上传对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“上传对象”<http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html>。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutObject
。
-
以下代码示例演示了如何使用 put-public-access-block。
- Amazon CLI
-
为存储桶设置阻止公共访问配置
以下
put-public-access-block示例为指定存储桶设置限制性阻止公共访问配置。aws s3api put-public-access-block \ --bucketamzn-s3-demo-bucket\ --public-access-block-configuration"BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 PutPublicAccessBlock
。
-
以下代码示例演示了如何使用 rb。
- Amazon CLI
-
示例 1:删除存储桶
以下
rb命令将移除存储桶。在此示例中,用户的存储桶为amzn-s3-demo-bucket。请注意,存储桶必须为空才能移除:aws s3 rbs3://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 rbs3://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 详细信息,请参阅《Amazon CLI 命令参考》中的 Rb
。
-
以下代码示例演示了如何使用 restore-object。
- Amazon CLI
-
为对象创建还原请求
以下
restore-object示例将存储桶my-glacier-bucket的指定 Amazon S3 Glacier 对象还原为 10 天。aws s3api restore-object \ --bucketmy-glacier-bucket\ --keydoc1.rtf\ --restore-requestDays=10此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 RestoreObject
。
-
以下代码示例演示了如何使用 rm。
- Amazon CLI
-
示例 1:删除 S3 对象
以下
rm命令将删除单个 S3 对象:aws s3 rms3://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 rms3://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 rms3://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 rms3://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 rms3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey输出:
delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Rm
。
-
以下代码示例演示了如何使用 select-object-content。
- Amazon CLI
-
基于 SQL 语句筛选 Amazon S3 对象的内容
以下
select-object-content示例使用指定的 SQL 语句筛选my-data-file.csv对象并将输出发送到文件。aws s3api select-object-content \ --bucketamzn-s3-demo-bucket\ --keymy-data-file.csv\ --expression"select * from s3object limit 100"\ --expression-type 'SQL' \ --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \ --output-serialization '{"CSV": {}}'"output.csv"此命令不生成任何输出。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 SelectObjectContent
。
-
以下代码示例演示了如何使用 sync。
- Amazon 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 syncs3://amzn-s3-demo-buckets3://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 syncs3://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 syncs3://amzn-s3-demo-bucket/.\ --exclude"*another/*"输出:
download: s3://amzn-s3-demo-bucket/test1.txt to test1.txt示例 7:在不同区域的存储桶之间同步所有对象
以下
sync命令可在不同区域的两个存储桶之间同步文件:aws s3 syncs3://my-us-west-2-buckets3://my-us-east-1-bucket\ --source-regionus-west-2\ --regionus-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 详细信息,请参阅《Amazon CLI 命令参考》中的 Sync
。
-
以下代码示例演示了如何使用 upload-part-copy。
- Amazon CLI
-
从现有对象复制数据作为数据来源,上传部分对象
以下
upload-part-copy示例会通过从现有对象复制数据作为数据来源,上传部分对象。aws s3api upload-part-copy \ --bucketamzn-s3-demo-bucket\ --key"Map_Data_June.mp4"\ --copy-source"amzn-s3-demo-bucket/copy_of_Map_Data_June.mp4"\ --part-number1\ --upload-id"bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"输出:
{ "CopyPartResult": { "LastModified": "2019-12-13T23:16:03.000Z", "ETag": "\"711470fc377698c393d94aed6305e245\"" } }-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 UploadPartCopy
。
-
以下代码示例演示了如何使用 upload-part。
- Amazon CLI
-
以下命令上传使用
create-multipart-upload命令启动的分段上传中的第一个分段:aws s3api upload-part --bucketamzn-s3-demo-bucket--key 'multipart/01' --part-number1--bodypart01--upload-id"dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R"body选项采用本地文件的名称或路径进行上传(不要使用 file:// 前缀)。最小分段大小为 5 MB。上传 ID 由create-multipart-upload返回,也可以使用list-multipart-uploads进行检索。存储桶和键是在您创建分段上传时指定的。输出:
{ "ETag": "\"e868e0f4719e394144ef36531ee6824c\"" }保存每个分段的 ETag 值以备后用。需要这些值才能完成分段上传。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 UploadPart
。
-
以下代码示例演示了如何使用 website。
- Amazon 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 websites3://amzn-s3-demo-bucket/\ --index-documentindex.html\ --error-documenterror.html有关在 Amazon S3 中托管静态网站的信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的托管静态网站。
-
有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 Website
。
-