本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 的示例 AWS CLI
以下代码示例向您展示了如何在 Amazon S3 中使用来执行操作和实现常见场景。 AWS Command Line Interface
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例显示了如何使用abort-multipart-upload
。
- AWS CLI
-
中止指定的分段上传
以下
abort-multipart-upload
命令中止存储桶my-bucket
中键multipart/01
的分段上传:aws s3api abort-multipart-upload \ --bucket
my-bucket
\ --keymultipart/01
\ --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
此命令所需的上传 ID 由
create-multipart-upload
输出,也可以使用list-multipart-uploads
进行检索。-
有关API详细信息,请参阅 “AbortMultipartUpload AWS CLI
命令参考”。
-
以下代码示例显示了如何使用complete-multipart-upload
。
- AWS CLI
-
以下命令完成存储桶
my-bucket
中密钥multipart/01
的分段上传:aws s3api complete-multipart-upload --multipart-upload
file://mpustruct
--bucketmy-bucket
--key 'multipart/01
' --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R
此命令所需的上传 ID 由
create-multipart-upload
输出,也可以使用list-multipart-uploads
进行检索。上述命令中的分段上传选项采用一种JSON结构,该结构描述了分段上传中应重新组合成完整文件的各个部分。在此示例中,
file://
前缀用于从本地文件夹中名为的文件加载JSON结构mpustruct
。mpustruct:
{ "Parts": [ { "ETag": "e868e0f4719e394144ef36531ee6824c", "PartNumber": 1 }, { "ETag": "6bb2b12753d66fe86da4998aa33fffb0", "PartNumber": 2 }, { "ETag": "d0a0112e841abec9c9ec83406f0159c8", "PartNumber": 3 } ] }
每次使用
upload-part
命令上传分段时,都会输出每个分段的ETag值,也可以通过调用来检索,list-parts
或者通过取每个分段的MD5校验和来计算。输出:
{ "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"", "Bucket": "my-bucket", "Location": "https://my-bucket.s3.amazonaws.com/multipart%2F01", "Key": "multipart/01" }
-
有关API详细信息,请参阅 “CompleteMultipartUpload AWS CLI
命令参考”。
-
以下代码示例显示了如何使用copy-object
。
- AWS CLI
-
以下命令将对象从
bucket-1
复制到bucket-2
:aws s3api copy-object --copy-source
bucket-1/test.txt
--keytest.txt
--bucketbucket-2
输出:
{ "CopyObjectResult": { "LastModified": "2015-11-10T01:07:25.000Z", "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\"" }, "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA" }
-
有关API详细信息,请参阅 “CopyObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用cp
。
- AWS CLI
-
示例 1:将本地文件复制到 S3
以下
cp
命令将单个文件复制到指定的存储桶和密钥:aws s3 cp
test.txt
s3://mybucket/test2.txt
输出:
upload: test.txt to s3://mybucket/test2.txt
示例 2:将带有过期日期的本地文件复制到 S3
以下
cp
命令将单个文件复制到指定的存储桶和密钥,该文件将在指定的 ISO 8601 时间戳过期:aws s3 cp
test.txt
s3://mybucket/test2.txt
\ --expires2014-10-01T20:30:00Z
输出:
upload: test.txt to s3://mybucket/test2.txt
示例 3:将文件从 S3 复制到 S3
以下
cp
命令将单个 s3 对象复制到指定的存储桶和密钥:aws s3 cp
s3://mybucket/test.txt
s3://mybucket/test2.txt
输出:
copy: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 4:将 S3 对象复制到本地文件
以下
cp
命令将单个对象复制到本地的指定文件中:aws s3 cp
s3://mybucket/test.txt
test2.txt
输出:
download: s3://mybucket/test.txt to test2.txt
示例 5:将 S3 对象从一个存储桶复制到另一个存储桶
以下
cp
命令将单个对象复制到指定的存储桶,同时保留其原始名称:aws s3 cp
s3://mybucket/test.txt
s3://mybucket2/
输出:
copy: s3://mybucket/test.txt to s3://mybucket2/test.txt
示例 6:以递归方式将 S3 对象复制到本地目录
当与参数一起传递时
--recursive
,以下cp
命令会递归地将指定前缀和存储桶下的所有对象复制到指定目录。在此示例中mybucket
,存储桶包含对象test1.txt
和test2.txt
:aws s3 cp
s3://mybucket
.
\ --recursive输出:
download: s3://mybucket/test1.txt to test1.txt download: s3://mybucket/test2.txt to test2.txt
示例 7:以递归方式将本地文件复制到 S3
当与参数一起传递时
--recursive
,以下cp
命令会递归地将指定目录下的所有文件复制到指定的存储桶和前缀,同时使用--exclude
参数排除某些文件。在此示例中,myDir
该目录包含文件test1.txt
和test2.jpg
:aws s3 cp
myDir
s3://mybucket/
\ --recursive \ --exclude"*.jpg"
输出:
upload: myDir/test1.txt to s3://mybucket/test1.txt
示例 8:以递归方式将 S3 对象复制到另一个存储桶
当与参数一起传递时
--recursive
,以下cp
命令以递归方式将指定存储桶下的所有对象复制到另一个存储桶,同时使用--exclude
参数排除某些对象。在此示例中mybucket
,存储桶包含对象test1.txt
和another/test1.txt
:aws s3 cp
s3://mybucket/
s3://mybucket2/
\ --recursive \ --exclude"another/*"
输出:
copy: s3://mybucket/test1.txt to s3://mybucket2/test1.txt
您可以组合
--exclude
和--include
选项,仅复制与模式匹配的对象,不包括所有其他对象:aws s3 cp
s3://mybucket/logs/
s3://mybucket2/logs/
\ --recursive \ --exclude"*"
\ --include"*.log"
输出:
copy: s3://mybucket/logs/test/test.log to s3://mybucket2/logs/test/test.log copy: s3://mybucket/logs/test3.log to s3://mybucket2/logs/test3.log
示例 9:在复制 S3 对象时设置访问控制列表 (ACL)
以下
cp
命令将单个对象复制到指定的存储桶和密钥,同时ACL将它们设置为public-read-write
:aws s3 cp
s3://mybucket/test.txt
s3://mybucket/test2.txt
\ --aclpublic-read-write
输出:
copy: s3://mybucket/test.txt to s3://mybucket/test2.txt
请注意,如果您使用的是该
--acl
选项,请确保所有关联的IAM策略都包含以下"s3:PutObjectAcl"
操作:aws iam get-user-policy \ --user-name
myuser
\ --policy-namemypolicy
输出:
{ "UserName": "myuser", "PolicyName": "mypolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::mybucket/*" ], "Effect": "Allow", "Sid": "Stmt1234567891234" } ] } }
示例 10:为 S3 对象授予权限
以下
cp
命令说明了如何使用该--grants
选项向由其规范 ID 标识的所有用户授予读取权限,URI并向通过其 Canonical ID 标识的特定用户授予完全控制权:aws s3 cp
file.txt
s3://mybucket/
--grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsers
full=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
输出:
upload: file.txt to s3://mybucket/file.txt
示例 11:将本地文件流上传到 S3
PowerShell 可能会更改管道输入的编码或在CRLF管道输入中添加。
以下
cp
命令将本地文件流从标准输入上传到指定的存储桶和密钥:aws s3 cp
-
s3://mybucket/stream.txt
示例 12:将大于 50GB 的本地文件流上传到 S3
以下
cp
命令将 51GB 的本地文件流从标准输入上传到指定的存储桶和密钥。必须提供该--expected-size
选项,否则当上传达到默认分段限制为 10,000 时,上传可能会失败:aws s3 cp
-
s3://mybucket/stream.txt
--expected-size54760833024
示例 13:将 S3 对象下载为本地文件流
PowerShell 可能会更改管道或重定向输出的编码,CRLF或者在管道输出或重定向输出中添加。
以下
cp
命令将 S3 对象作为流下载到本地标准输出。作为直播下载目前与以下--recursive
参数不兼容:aws s3 cp
s3://mybucket/stream.txt
-
示例 14:上传到 S3 接入点
以下
cp
命令将单个文件 (mydoc.txt
) 上传到密钥 (myaccesspoint
) 处的接入点 (mykey
):aws s3 cp
mydoc.txt
s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
输出:
upload: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
示例 15:从 S3 接入点下载
以下
cp
命令将单个对象 (mykey
) 从接入点 (myaccesspoint
) 下载到本地文件 (mydoc.txt
):aws s3 cp
s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
mydoc.txt
输出:
download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Cp
。
-
以下代码示例显示了如何使用create-bucket
。
- AWS CLI
-
示例 1:创建存储桶
以下
create-bucket
示例创建一个名为my-bucket
的存储桶:aws s3api create-bucket \ --bucket
my-bucket
\ --regionus-east-1
输出:
{ "Location": "/my-bucket" }
有关更多信息,请参阅《Amazon S3 用户指南》中的创建存储桶。
示例 2:创建带有强制拥有者的存储桶
以下
create-bucket
示例创建一个名为my-bucket
的存储桶,该存储桶对于 S3 对象所有权使用强制存储桶拥有者设置。aws s3api create-bucket \ --bucket
my-bucket
\ --regionus-east-1
\ --object-ownershipBucketOwnerEnforced
输出:
{ "Location": "/my-bucket" }
有关更多信息,请参阅 Amazon S3 用户指南ACLs中的控制对象所有权和禁用。
示例 3:在“us-east-1”区域之外创建存储桶
以下
create-bucket
示例在eu-west-1
区域中创建名为my-bucket
的存储桶。us-east-1
之外的区域需要指定相应的LocationConstraint
才能在所需区域创建存储桶。aws s3api create-bucket \ --bucket
my-bucket
\ --regioneu-west-1
\ --create-bucket-configurationLocationConstraint=eu-west-1
输出:
{ "Location": "http://my-bucket.s3.amazonaws.com/" }
有关更多信息,请参阅《Amazon S3 用户指南》中的创建存储桶。
-
有关API详细信息,请参阅 “CreateBucket AWS CLI
命令参考”。
-
以下代码示例显示了如何使用create-multipart-upload
。
- AWS CLI
-
以下命令在存储桶
my-bucket
中创建带有密钥multipart/01
的分段上传:aws s3api create-multipart-upload --bucket
my-bucket
--key 'multipart/01
'输出:
{ "Bucket": "my-bucket", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "Key": "multipart/01" }
完成的文件在存储桶
my-bucket
中名为multipart
文件夹中将命名为01
。保存上传 ID、密钥和存储桶名称以供upload-part
命令使用。-
有关API详细信息,请参阅 “CreateMultipartUpload AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-analytics-configuration
。
- AWS CLI
-
删除存储桶的分析配置
以下
delete-bucket-analytics-configuration
示例移除指定存储桶和 ID 的分析配置。aws s3api delete-bucket-analytics-configuration \ --bucket
my-bucket
\ --id1
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteBucketAnalyticsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-cors
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除跨源资源共享配置:aws s3api delete-bucket-cors --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketCors AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-encryption
。
- AWS CLI
-
删除存储桶的服务器端加密配置
以下
delete-bucket-encryption
示例删除指定存储桶的服务器端加密配置。aws s3api delete-bucket-encryption \ --bucket
my-bucket
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteBucketEncryption AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-intelligent-tiering-configuration
。
- AWS CLI
-
删除存储桶上的 S3 智能分层配置
以下
delete-bucket-intelligent-tiering-configuration
示例删除了存储桶上名 ExampleConfig为的 S3 智能分层配置。aws s3api delete-bucket-intelligent-tiering-configuration \ --bucket
DOC-EXAMPLE-BUCKET
\ --idExampleConfig
此命令不生成任何输出。
有关更多信息,请参阅 Amazon S3 用户指南中的使用 S3 智能分层。
-
有关API详细信息,请参阅 “DeleteBucketIntelligentTieringConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-inventory-configuration
。
- AWS CLI
-
删除存储桶的清单配置
以下
delete-bucket-inventory-configuration
示例删除指定存储桶的 ID 为1
的清单配置。aws s3api delete-bucket-inventory-configuration \ --bucket
my-bucket
\ --id1
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteBucketInventoryConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-lifecycle
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除生命周期配置:aws s3api delete-bucket-lifecycle --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketLifecycle AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-metrics-configuration
。
- AWS CLI
-
删除存储桶的指标配置
以下
delete-bucket-metrics-configuration
示例移除指定存储桶和 ID 的指标配置。aws s3api delete-bucket-metrics-configuration \ --bucket
my-bucket
\ --id123
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteBucketMetricsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-ownership-controls
。
- AWS CLI
-
移除存储桶的存储桶所有权设置
以下
delete-bucket-ownership-controls
示例删除了存储桶的存储桶所有权设置。aws s3api delete-bucket-ownership-controls \ --bucket
DOC-EXAMPLE-BUCKET
此命令不生成任何输出。
有关更多信息,请参阅 Amazon S3 用户指南中的为现有存储桶设置对象所有权。
-
有关API详细信息,请参阅 “DeleteBucketOwnershipControls AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-policy
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除存储桶策略:aws s3api delete-bucket-policy --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-replication
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除复制配置:aws s3api delete-bucket-replication --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketReplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-tagging
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除标记配置:aws s3api delete-bucket-tagging --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket-website
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除网站配置:aws s3api delete-bucket-website --bucket
my-bucket
-
有关API详细信息,请参阅 “DeleteBucketWebsite AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-bucket
。
- AWS CLI
-
以下命令删除名为
my-bucket
的存储桶:aws s3api delete-bucket --bucket
my-bucket
--regionus-east-1
-
有关API详细信息,请参阅 “DeleteBucket AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-object-tagging
。
- AWS CLI
-
删除对象的标签集
以下
delete-object-tagging
示例从对象doc1.rtf
中删除带有指定键的标签。aws s3api delete-object-tagging \ --bucket
my-bucket
\ --keydoc1.rtf
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteObjectTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-object
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除名为test.txt
的对象:aws s3api delete-object --bucket
my-bucket
--keytest.txt
如果启用了存储桶版本控制,则输出将包含删除标记的版本 ID:
{ "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq", "DeleteMarker": true }
有关删除对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“删除对象”。
-
有关API详细信息,请参阅 “DeleteObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-objects
。
- AWS CLI
-
以下命令从名为
my-bucket
的存储桶中删除对象:aws s3api delete-objects --bucket
my-bucket
--deletefile://delete.json
delete.json
是当前目录中的一个JSON文档,它指定了要删除的对象:{ "Objects": [ { "Key": "test1.txt" } ], "Quiet": false }
输出:
{ "Deleted": [ { "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU", "Key": "test1.txt", "DeleteMarker": true } ] }
-
有关API详细信息,请参阅 “DeleteObjects AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-public-access-block
。
- AWS CLI
-
删除存储桶的屏蔽公共访问权限配置
以下
delete-public-access-block
示例移除指定存储桶上的屏蔽公共访问权限配置。aws s3api delete-public-access-block \ --bucket
my-bucket
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeletePublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-accelerate-configuration
。
- AWS CLI
-
检索存储桶的加速配置
以下
get-bucket-accelerate-configuration
示例检索指定存储桶的加速配置。aws s3api get-bucket-accelerate-configuration \ --bucket
my-bucket
输出:
{ "Status": "Enabled" }
-
有关API详细信息,请参阅 “GetBucketAccelerateConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-acl
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的访问控制列表:aws s3api get-bucket-acl --bucket
my-bucket
输出:
{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" } ] }
-
有关API详细信息,请参阅 “GetBucketAcl AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-analytics-configuration
。
- AWS CLI
-
检索具有特定 ID 的存储桶的分析配置
以下
get-bucket-analytics-configuration
示例显示了指定存储桶和 ID 的分析配置。aws s3api get-bucket-analytics-configuration \ --bucket
my-bucket
\ --id1
输出:
{ "AnalyticsConfiguration": { "StorageClassAnalysis": {}, "Id": "1" } }
-
有关API详细信息,请参阅 “GetBucketAnalyticsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-cors
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的跨源资源共享配置:aws s3api get-bucket-cors --bucket
my-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详细信息,请参阅 “GetBucketCors AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-encryption
。
- AWS CLI
-
检索存储桶的服务器端加密配置
以下
get-bucket-encryption
示例检索存储桶my-bucket
的服务器端加密配置。aws s3api get-bucket-encryption \ --bucket
my-bucket
输出:
{ "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] } }
-
有关API详细信息,请参阅 “GetBucketEncryption AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-intelligent-tiering-configuration
。
- AWS CLI
-
检索存储桶上的 S3 智能分层配置
以下
get-bucket-intelligent-tiering-configuration
示例检索存储桶上名 ExampleConfig为的 S3 智能分层配置。aws s3api get-bucket-intelligent-tiering-configuration \ --bucket
DOC-EXAMPLE-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详细信息,请参阅 “GetBucketIntelligentTieringConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-inventory-configuration
。
- AWS CLI
-
检索存储桶的清单配置
以下
get-bucket-inventory-configuration
示例检索 ID 为1
的指定存储桶的清单配置。aws s3api get-bucket-inventory-configuration \ --bucket
my-bucket
\ --id1
输出:
{ "InventoryConfiguration": { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } } }
-
有关API详细信息,请参阅 “GetBucketInventoryConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-lifecycle-configuration
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的生命周期配置:aws s3api get-bucket-lifecycle-configuration --bucket
my-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详细信息,请参阅 “GetBucketLifecycleConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-lifecycle
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的生命周期配置:aws s3api get-bucket-lifecycle --bucket
my-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详细信息,请参阅 “GetBucketLifecycle AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-location
。
- AWS CLI
-
如果存在约束条件,则以下命令会检索名为
my-bucket
的存储桶的位置约束:aws s3api get-bucket-location --bucket
my-bucket
输出:
{ "LocationConstraint": "us-west-2" }
-
有关API详细信息,请参阅 “GetBucketLocation AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-logging
。
- AWS CLI
-
检索存储桶的日志记录状态
以下
get-bucket-logging
示例检索指定存储桶的日志记录状态。aws s3api get-bucket-logging \ --bucket
my-bucket
输出:
{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "my-bucket-logs" } }
-
有关API详细信息,请参阅 “GetBucketLogging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-metrics-configuration
。
- AWS CLI
-
检索具有特定 ID 的存储桶的指标配置
以下
get-bucket-metrics-configuration
示例显示了指定存储桶和 ID 的指标配置。aws s3api get-bucket-metrics-configuration \ --bucket
my-bucket
\ --id123
输出:
{ "MetricsConfiguration": { "Filter": { "Prefix": "logs" }, "Id": "123" } }
-
有关API详细信息,请参阅 “GetBucketMetricsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-notification-configuration
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的通知配置:aws s3api get-bucket-notification-configuration --bucket
my-bucket
输出:
{ "TopicConfigurations": [ { "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }
-
有关API详细信息,请参阅 “GetBucketNotificationConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-notification
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的通知配置:aws s3api get-bucket-notification --bucket
my-bucket
输出:
{ "TopicConfiguration": { "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "Event": "s3:ObjectCreated:*", "Events": [ "s3:ObjectCreated:*" ] } }
-
有关API详细信息,请参阅 “GetBucketNotification AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-ownership-controls
。
- AWS CLI
-
检索存储桶的存储桶所有权设置
以下
get-bucket-ownership-controls
示例检索存储桶的存储桶所有权设置。aws s3api get-bucket-ownership-controls \ --bucket
DOC-EXAMPLE-BUCKET
输出:
{ "OwnershipControls": { "Rules": [ { "ObjectOwnership": "BucketOwnerEnforced" } ] } }
有关更多信息,请参阅 Amazon S3 用户指南中的查看 S3 存储桶的对象所有权设置。
-
有关API详细信息,请参阅 “GetBucketOwnershipControls AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-policy-status
。
- AWS CLI
-
检索存储桶的策略状态,此状态指示存储桶是否为公有存储桶
以下
get-bucket-policy-status
示例检索存储桶my-bucket
的策略状态。aws s3api get-bucket-policy-status \ --bucket
my-bucket
输出:
{ "PolicyStatus": { "IsPublic": false } }
-
有关API详细信息,请参阅 “GetBucketPolicyStatus AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-policy
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的存储桶策略:aws s3api get-bucket-policy --bucket
my-bucket
输出:
{ "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/secret/*\"}]}" }
获取并放置存储桶 policyThe 以下示例展示了如何下载 Amazon S3 存储桶策略,修改文件,然后使用
put-bucket-policy
来应用修改后的存储桶策略。要将存储桶策略下载到文件中,您可以运行:aws s3api get-bucket-policy --bucket mybucket --query Policy --output text > policy.json
然后,您可以根据需要修改
policy.json
文件。最后,您可以通过运行以下对象,将此修改后的策略应用回 S3 存储桶:policy.json
文件(根据需要)。最后,您可以通过运行以下对象,将此修改后的策略应用回 S3 存储桶:文件(根据需要)。最后,您可以通过运行以下对象,将此修改后的策略应用回 S3 存储桶:
aws s3api put-bucket-policy --bucket mybucket --policy file://policy.json
-
有关API详细信息,请参阅 “GetBucketPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-replication
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的复制配置:aws s3api get-bucket-replication --bucket
my-bucket
输出:
{ "ReplicationConfiguration": { "Rules": [ { "Status": "Enabled", "Prefix": "", "Destination": { "Bucket": "arn:aws:s3:::my-bucket-backup", "StorageClass": "STANDARD" }, "ID": "ZmUwNzE4ZmQ4tMjVhOS00MTlkLOGI4NDkzZTIWJjNTUtYTA1" } ], "Role": "arn:aws:iam::123456789012:role/s3-replication-role" } }
-
有关API详细信息,请参阅 “GetBucketReplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-request-payment
。
- AWS CLI
-
检索存储桶的请求付款配置
以下
get-bucket-request-payment
示例检索指定存储桶的申请方付款配置。aws s3api get-bucket-request-payment \ --bucket
my-bucket
输出:
{ "Payer": "BucketOwner" }
-
有关API详细信息,请参阅 “GetBucketRequestPayment AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-tagging
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的标记配置:aws s3api get-bucket-tagging --bucket
my-bucket
输出:
{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }
-
有关API详细信息,请参阅 “GetBucketTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-versioning
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的版本控制配置:aws s3api get-bucket-versioning --bucket
my-bucket
输出:
{ "Status": "Enabled" }
-
有关API详细信息,请参阅 “GetBucketVersioning AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-bucket-website
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶的静态网站配置:aws s3api get-bucket-website --bucket
my-bucket
输出:
{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
-
有关API详细信息,请参阅 “GetBucketWebsite AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-acl
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶中对象的访问控制列表:aws s3api get-object-acl --bucket
my-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详细信息,请参阅 “GetObjectAcl AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-attributes
。
- AWS CLI
-
从对象检索元数据而不返回对象本身
以下
get-object-attributes
示例从对象doc1.rtf
检索元数据。aws s3api get-object-attributes \ --bucket
my-bucket
\ --keydoc1.rtf
\ --object-attributes"StorageClass"
"ETag"
"ObjectSize"
输出:
{ "LastModified": "2022-03-15T19:37:31+00:00", "VersionId": "IuCPjXTDzHNfldAuitVBIKJpF2p1fg4P", "ETag": "b662d79adeb7c8d787ea7eafb9ef6207", "StorageClass": "STANDARD", "ObjectSize": 405 }
有关更多信息,请参阅 GetObjectAttributesAmazon S3 API 参考中的。
-
有关API详细信息,请参阅 “GetObjectAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-legal-hold
。
- AWS CLI
-
检索对象的法定保留状态
以下
get-object-legal-hold
示例检索指定对象的法定保留状态。aws s3api get-object-legal-hold \ --bucket
my-bucket-with-object-lock
\ --keydoc1.rtf
输出:
{ "LegalHold": { "Status": "ON" } }
-
有关API详细信息,请参阅 “GetObjectLegalHold AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-lock-configuration
。
- AWS CLI
-
检索存储桶的对象锁定配置
以下
get-object-lock-configuration
示例检索指定存储桶的对象锁定配置。aws s3api get-object-lock-configuration \ --bucket
my-bucket-with-object-lock
输出:
{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 } } } }
-
有关API详细信息,请参阅 “GetObjectLockConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-retention
。
- AWS CLI
-
检索对象的对象保留配置
以下
get-object-retention
示例检索指定对象的对象保留配置。aws s3api get-object-retention \ --bucket
my-bucket-with-object-lock
\ --keydoc1.rtf
输出:
{ "Retention": { "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00.000Z" } }
-
有关API详细信息,请参阅 “GetObjectRetention AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-tagging
。
- AWS CLI
-
检索附加到对象的标签
以下
get-object-tagging
示例从指定的对象中检索指定键的值。aws s3api get-object-tagging \ --bucket
my-bucket
\ --keydoc1.rtf
输出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" } ] }
以下
get-object-tagging
示例尝试检索没有标签的对象doc2.rtf
的标签集。aws s3api get-object-tagging \ --bucket
my-bucket
\ --keydoc2.rtf
输出:
{ "TagSet": [] }
以下
get-object-tagging
示例检索具有多个标签的对象doc3.rtf
的标签集。aws s3api get-object-tagging \ --bucket
my-bucket
\ --keydoc3.rtf
输出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" }, { "Value": "finance", "Key": "department" }, { "Value": "payroll", "Key": "team" } ] }
-
有关API详细信息,请参阅 “GetObjectTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object-torrent
。
- AWS CLI
-
以下命令为名为的存储桶中的对象创建 torrent
my-bucket
:aws s3api get-object-torrent --bucket
my-bucket
--keylarge-video-file.mp4
large-video-file.torrent
torrent 文件保存在本地当前文件夹中。请注意,指定输出文件名 (
large-video-file.torrent
) 时没有选项名称,并且必须是命令中的最后一个参数。-
有关API详细信息,请参阅 “GetObjectTorrent AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-object
。
- AWS CLI
-
以下示例使用
get-object
命令从 Amazon S3 下载对象:aws s3api get-object --bucket
text-content
--keydir/my_images.tar.bz2
my_images.tar.bz2
请注意,指定 outfile 参数时没有诸如“--outfile”之类的选项名称。输出文件的名称必须是命令中的最后一个参数。
以下示例演示了如何使用
--range
从对象下载特定字节范围。请注意,字节范围需要以“bytes=”为前缀:aws s3api get-object --bucket
text-content
--keydir/my_data
--rangebytes=8888-9999
my_data_range
有关检索对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“获取对象”。
-
有关API详细信息,请参阅 “GetObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-public-access-block
。
- AWS CLI
-
设置或修改存储桶的屏蔽公共访问权限配置
以下
get-public-access-block
示例显示了指定存储桶的屏蔽公共访问权限配置。aws s3api get-public-access-block \ --bucket
my-bucket
输出:
{ "PublicAccessBlockConfiguration": { "IgnorePublicAcls": true, "BlockPublicPolicy": true, "BlockPublicAcls": true, "RestrictPublicBuckets": true } }
-
有关API详细信息,请参阅 “GetPublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用head-bucket
。
- AWS CLI
-
以下命令验证对名为
my-bucket
的存储桶的访问权限:aws s3api head-bucket --bucket
my-bucket
如果存储桶存在并且您可以访问它,则不返回任何输出。否则,会显示错误消息。例如:
A client error (404) occurred when calling the HeadBucket operation: Not Found
-
有关API详细信息,请参阅 “HeadBucket AWS CLI
命令参考”。
-
以下代码示例显示了如何使用head-object
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶中对象的元数据:aws s3api head-object --bucket
my-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详细信息,请参阅 “HeadObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-bucket-analytics-configurations
。
- AWS CLI
-
检索存储桶的分析配置列表
下面的
list-bucket-analytics-configurations
检索指定存储桶的分析配置列表。aws s3api list-bucket-analytics-configurations \ --bucket
my-bucket
输出:
{ "AnalyticsConfigurationList": [ { "StorageClassAnalysis": {}, "Id": "1" } ], "IsTruncated": false }
-
有关API详细信息,请参阅 “ListBucketAnalyticsConfigurations AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-bucket-intelligent-tiering-configurations
。
- AWS CLI
-
检索存储桶上的所有 S3 智能分层配置
以下
list-bucket-intelligent-tiering-configurations
示例检索存储桶上的所有 S3 智能分层配置。aws s3api list-bucket-intelligent-tiering-configurations \ --bucket
DOC-EXAMPLE-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详细信息,请参阅 “ListBucketIntelligentTieringConfigurations AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-bucket-inventory-configurations
。
- AWS CLI
-
检索存储桶的清单配置列表
以下
list-bucket-inventory-configurations
示例列出了指定存储桶的清单配置。aws s3api list-bucket-inventory-configurations \ --bucket
my-bucket
输出:
{ "InventoryConfigurationList": [ { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } }, { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "CSV", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "2", "Schedule": { "Frequency": "Daily" } } ], "IsTruncated": false }
-
有关API详细信息,请参阅 “ListBucketInventoryConfigurations AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-bucket-metrics-configurations
。
- AWS CLI
-
检索存储桶的指标配置列表
以下
list-bucket-metrics-configurations
示例检索指定存储桶的指标配置列表。aws s3api list-bucket-metrics-configurations \ --bucket
my-bucket
输出:
{ "IsTruncated": false, "MetricsConfigurationList": [ { "Filter": { "Prefix": "logs" }, "Id": "123" }, { "Filter": { "Prefix": "tmp" }, "Id": "234" } ] }
-
有关API详细信息,请参阅 “ListBucketMetricsConfigurations AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-buckets
。
- AWS CLI
-
以下命令使用
list-buckets
命令显示所有 Amazon S3 存储桶的名称(跨所有区域):aws s3api list-buckets --query
"Buckets[].Name"
查询选项会筛选
list-buckets
的输出,使其范围缩小到仅限存储桶名称。有关存储桶的更多信息,请参阅《Amazon S3 开发人员指南》中的“使用 Amazon S3 存储桶”。
-
有关API详细信息,请参阅 “ListBuckets AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-multipart-uploads
。
- AWS CLI
-
以下命令列出了名为
my-bucket
的存储桶的所有活动分段上传:aws s3api list-multipart-uploads --bucket
my-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详细信息,请参阅 “ListMultipartUploads AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-object-versions
。
- AWS CLI
-
以下命令检索名为
my-bucket
的存储桶中对象的版本信息:aws s3api list-object-versions --bucket
my-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详细信息,请参阅 “ListObjectVersions AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-objects-v2
。
- AWS CLI
-
获取存储桶中对象的列表
以下
list-objects-v2
示例列出了指定存储桶中的对象。aws s3api list-objects-v2 \ --bucket
my-bucket
输出:
{ "Contents": [ { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"621503c373607d548b37cff8778d992c\"", "StorageClass": "STANDARD", "Key": "doc1.rtf", "Size": 391 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"a2cecc36ab7c7fe3a71a273b9d45b1b5\"", "StorageClass": "STANDARD", "Key": "doc2.rtf", "Size": 373 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"08210852f65a2e9cb999972539a64d68\"", "StorageClass": "STANDARD", "Key": "doc3.rtf", "Size": 399 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"d1852dd683f404306569471af106988e\"", "StorageClass": "STANDARD", "Key": "doc4.rtf", "Size": 6225 } ] }
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 ListObjectsV2
。
-
以下代码示例显示了如何使用list-objects
。
- AWS CLI
-
以下示例使用
list-objects
命令显示指定存储桶中所有对象的名称:aws s3api list-objects --bucket
text-content
--query 'Contents[].{Key: Key, Size: Size}
'该示例使用
--query
参数筛选list-objects
的输出,使其范围缩小到每个对象的键值和大小有关对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“使用 Amazon S3 对象”。
-
有关API详细信息,请参阅 “ListObjects AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-parts
。
- AWS CLI
-
以下命令列出了为分段上传而上传的所有分段,密钥
multipart/01
位于存储桶my-bucket
中:aws s3api list-parts --bucket
my-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详细信息,请参阅 “ListParts AWS CLI
命令参考”。
-
以下代码示例显示了如何使用ls
。
- AWS CLI
-
示例 1:列出所有用户拥有的存储桶
以下
ls
命令列出了用户拥有的所有存储桶。在此示例中,用户拥有存储桶mybucket
和。mybucket2
时间戳是存储桶的创建日期,以计算机的时区显示。对存储桶进行更改(例如编辑存储桶策略)时,此日期可能会更改。请注意s3://
,如果用于 path 参数<S3Uri>
,它也会列出所有存储桶。aws s3 ls
输出:
2013-07-11 17:08:50 mybucket 2013-07-24 14:55:44 mybucket2
示例 2:列出存储桶中的所有前缀和对象
以下
ls
命令列出指定存储桶和前缀下的对象和常用前缀。在此示例中,用户拥有mybucket
包含test.txt
和对象的存储桶somePrefix/test.txt
。LastWriteTime
和Length
是任意的。请注意,由于该ls
命令与本地文件系统没有交互,因此无需使用该s3://
URI方案来解决歧义,可以省略。aws s3 ls
s3://mybucket
输出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt
示例 3:列出特定存储桶和前缀中的所有前缀和对象
以下
ls
命令列出指定存储桶和前缀下的对象和常用前缀。但是,指定的存储桶和前缀下没有对象,也没有常用前缀。aws s3 ls
s3://mybucket/noExistPrefix
输出:
None
示例 4:以递归方式列出存储桶中的所有前缀和对象
以下
ls
命令将递归列出存储桶中的对象。存储桶PRE dirname/
中的所有内容将按顺序列出,而不是显示在输出中。aws s3 ls
s3://mybucket
\ --recursive输出:
2013-09-02 21:37:53 10 a.txt 2013-09-02 21:37:53 2863288 foo.zip 2013-09-02 21:32:57 23 foo/bar/.baz/a 2013-09-02 21:32:58 41 foo/bar/.baz/b 2013-09-02 21:32:57 281 foo/bar/.baz/c 2013-09-02 21:32:57 73 foo/bar/.baz/d 2013-09-02 21:32:57 452 foo/bar/.baz/e 2013-09-02 21:32:57 896 foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 z.txt
示例 5:汇总存储桶中的所有前缀和对象
以下
ls
命令使用--human-readable和--summary选项演示了相同的命令。 --human readable 在中显示文件大小。Bytes/MiB/KiB/GiB/TiB/PiB/EiB --summary 在结果列表的末尾显示对象的总数和总大小:aws s3 ls
s3://mybucket
\ --recursive \ --human-readable \ --summarize输出:
2013-09-02 21:37:53 10 Bytes a.txt 2013-09-02 21:37:53 2.9 MiB foo.zip 2013-09-02 21:32:57 23 Bytes foo/bar/.baz/a 2013-09-02 21:32:58 41 Bytes foo/bar/.baz/b 2013-09-02 21:32:57 281 Bytes foo/bar/.baz/c 2013-09-02 21:32:57 73 Bytes foo/bar/.baz/d 2013-09-02 21:32:57 452 Bytes foo/bar/.baz/e 2013-09-02 21:32:57 896 Bytes foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 Bytes foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 Bytes z.txt Total Objects: 10 Total Size: 2.9 MiB
示例 6:从 S3 接入点列出
以下
ls
命令列出来自接入点 (myaccesspoint
) 的对象:aws s3 ls
s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/
输出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Ls
。
-
以下代码示例显示了如何使用mb
。
- AWS CLI
-
示例 1:创建存储桶
以下
mb
命令创建存储桶。在此示例中,用户创建了存储桶mybucket
。存储桶是在用户配置文件中指定的区域中创建的:aws s3 mb
s3://mybucket
输出:
make_bucket: s3://mybucket
示例 2:在指定区域创建存储桶
以下
mb
命令在--region
参数指定的区域中创建存储桶。在此示例中,用户mybucket
在以下区域创建存储桶us-west-1
:aws s3 mb
s3://mybucket
\ --regionus-west-1
输出:
make_bucket: s3://mybucket
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Mb
。
-
以下代码示例显示了如何使用mv
。
- AWS CLI
-
示例 1:将本地文件移动到指定的存储桶
以下
mv
命令将单个文件移动到指定的存储桶和密钥。aws s3 mv
test.txt
s3://mybucket/test2.txt
输出:
move: test.txt to s3://mybucket/test2.txt
示例 2:将对象移至指定的存储桶和密钥
以下
mv
命令将单个 s3 对象移动到指定的存储桶和密钥。aws s3 mv
s3://mybucket/test.txt
s3://mybucket/test2.txt
输出:
move: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 3:将 S3 对象移动到本地目录
以下
mv
命令将单个对象移动到本地的指定文件中。aws s3 mv
s3://mybucket/test.txt
test2.txt
输出:
move: s3://mybucket/test.txt to test2.txt
示例 4:将具有原始名称的对象移动到指定的存储桶
以下
mv
命令将单个对象移动到指定的存储桶,同时保留其原始名称:aws s3 mv
s3://mybucket/test.txt
s3://mybucket2/
输出:
move: s3://mybucket/test.txt to s3://mybucket2/test.txt
示例 5:将存储桶中的所有对象和前缀移至本地目录
当与参数一起传递时
--recursive
,以下mv
命令会递归地将指定前缀下的所有对象和存储桶移动到指定目录。在此示例中mybucket
,存储桶包含对象test1.txt
和test2.txt
。aws s3 mv
s3://mybucket
.
\ --recursive输出:
move: s3://mybucket/test1.txt to test1.txt move: s3://mybucket/test2.txt to test2.txt
示例 6:将存储桶中的所有对象和前缀移到本地目录,“.jpg” 文件除外
当与参数一起传递时
--recursive
,以下mv
命令将指定目录下的所有文件递归移动到指定的存储桶和前缀,同时使用--exclude
参数排除某些文件。在此示例中myDir
,目录包含文件test1.txt
和test2.jpg
。aws s3 mv
myDir
s3://mybucket/
\ --recursive \ --exclude"*.jpg"
输出:
move: myDir/test1.txt to s3://mybucket2/test1.txt
示例 7:将存储桶中的所有对象和前缀移到本地目录(指定前缀除外)
当与参数一起传递时
--recursive
,以下mv
命令以递归方式将指定存储桶下的所有对象移动到另一个存储桶,同时使用--exclude
参数排除某些对象。在此示例中mybucket
,存储桶包含对象test1.txt
和another/test1.txt
。aws s3 mv
s3://mybucket/
s3://mybucket2/
\ --recursive \ --exclude"mybucket/another/*"
输出:
move: s3://mybucket/test1.txt to s3://mybucket2/test1.txt
示例 8:将对象移动到指定的存储桶并设置 ACL
以下
mv
命令将单个对象移动到指定的存储桶和密钥,同时ACL将它们设置为public-read-write
。aws s3 mv
s3://mybucket/test.txt
s3://mybucket/test2.txt
\ --aclpublic-read-write
输出:
move: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 9:将本地文件移至指定存储桶并授予权限
以下
mv
命令说明了如何使用该--grants
选项向所有用户授予读取权限,并向通过其电子邮件地址标识的特定用户授予完全控制权。aws s3 mv
file.txt
s3://mybucket/
\ --grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsers
full=emailaddress=user@example.com
输出:
move: file.txt to s3://mybucket/file.txt
示例 10:将文件移动到 S3 接入点
以下
mv
命令将名为的单个文件移动mydoc.txt
到以名为的密钥命名的myaccesspoint
接入点mykey
。aws s3 mv
mydoc.txt
s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
输出:
move: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Mv
。
-
以下代码示例显示了如何使用presign
。
- AWS CLI
-
示例 1:创建链接到 S3 存储桶中对象的默认生命周期为一小时的预签名 URL
以下
presign
命令URL为指定的存储桶和密钥生成一个预签名,有效期为一小时。aws s3 presign
s3://DOC-EXAMPLE-BUCKET/test2.txt
输出:
https://DOC-EXAMPLE-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:创建链接到 S3 存储桶中对象的URL具有自定义生命周期的预签名
以下
presign
命令URL为指定的存储桶和密钥生成一个预签名,有效期为一周。aws s3 presign
s3://DOC-EXAMPLE-BUCKET/test2.txt
\ --expires-in604800
输出:
https://DOC-EXAMPLE-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详细信息,请参阅《AWS CLI 命令参考》中的 Presign
。
-
以下代码示例显示了如何使用put-bucket-accelerate-configuration
。
- AWS CLI
-
设置存储桶的加速配置
以下
put-bucket-accelerate-configuration
示例启用指定存储桶的加速配置。aws s3api put-bucket-accelerate-configuration \ --bucket
my-bucket
\ --accelerate-configurationStatus=Enabled
此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketAccelerateConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-acl
。
- AWS CLI
-
此示例
full control
向两个 AWS 用户(user1@example.com 和 user2@example.com)授予权限,并向所有人read
授予权限:aws s3api put-bucket-acl --bucket
MyBucket
--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com
--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers
见 http://docs.aws.amazon。 com/AmazonS3/latest/API/RESTBucketPUTacl.html 了解有关自定义的详细信息ACLs(例如 s3api ACL 命令使用相同的速记参数表示法)。
put-bucket-acl
-
有关API详细信息,请参阅 “PutBucketAcl AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-analytics-configuration
。
- AWS CLI
-
为存储桶设置分析配置
以下
put-bucket-analytics-configuration
示例为指定存储桶配置分析。aws s3api put-bucket-analytics-configuration \ --bucket
my-bucket
--id1
\ --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketAnalyticsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-cors
。
- AWS CLI
-
以下示例启用来自 www.example.com 的
PUT
、POST
和DELETE
请求,并启用来自任何域的GET
请求:aws s3api put-bucket-cors --bucket
MyBucket
--cors-configurationfile://cors.json
cors.json:
{
"CORSRules":[
{
"AllowedOrigins": ["http://www.example.com"], "AllowedHeaders": ["*"], "AllowedMethods": ["PUT", "POST", "DELETE"], "MaxAgeSeconds":3000,
"ExposeHeaders": ["x-amz-server-side-encryption"]},
{
"AllowedOrigins": ["*"], "AllowedHeaders": ["Authorization"], "AllowedMethods": ["GET"], "MaxAgeSeconds":3000
}
]
}
-
有关API详细信息,请参阅 “PutBucketCors AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-encryption
。
- AWS CLI
-
配置存储桶的服务器端加密
以下
put-bucket-encryption
示例将AES256加密设置为指定存储桶的默认值。aws s3api put-bucket-encryption \ --bucket
my-bucket
\ --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketEncryption AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-intelligent-tiering-configuration
。
- AWS CLI
-
更新存储桶上的 S3 智能分层配置
以下
put-bucket-intelligent-tiering-configuration
示例更新了存储桶上名 ExampleConfig为的 S3 智能分层配置。该配置将在 90 天后将未在前缀图像下访问的对象转换为存档访问权限和 180 天后深度存档访问权限。aws s3api put-bucket-intelligent-tiering-configuration \ --bucket
DOC-EXAMPLE-BUCKET
\ --id"ExampleConfig"
\ --intelligent-tiering-configurationfile://intelligent-tiering-configuration.json
intelligent-tiering-configuration.json
的内容:{ "Id": "ExampleConfig", "Status": "Enabled", "Filter": { "Prefix": "images" }, "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }
此命令不生成任何输出。
有关更多信息,请参阅 Amazon S3 用户指南中的为现有存储桶设置对象所有权。
-
有关API详细信息,请参阅 “PutBucketIntelligentTieringConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-inventory-configuration
。
- AWS CLI
-
示例 1:为存储桶设置清单配置
以下
put-bucket-inventory-configuration
示例为存储桶my-bucket
设置了每周ORC格式的库存报告。aws s3api put-bucket-inventory-configuration \ --bucket
my-bucket
\ --id1
\ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "ORC" }}, "IsEnabled": true, "Id": "1", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Weekly" }}
'此命令不生成任何输出。
示例 2:为存储桶设置清单配置
以下
put-bucket-inventory-configuration
示例为存储桶my-bucket
设置了每日CSV格式的库存报告。aws s3api put-bucket-inventory-configuration \ --bucket
my-bucket
\ --id2
\ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "CSV" }}, "IsEnabled": true, "Id": "2", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Daily" }}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketInventoryConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-lifecycle-configuration
。
- AWS CLI
-
以下命令将生命周期配置应用于名为
my-bucket
的存储桶:aws s3api put-bucket-lifecycle-configuration --bucket
my-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。有关可接受的时间戳格式的信息,请参阅AWS CLI用户指南中的指定参数值。-
有关API详细信息,请参阅 “PutBucketLifecycleConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-lifecycle
。
- AWS CLI
-
以下命令将生命周期配置应用于存储桶
my-bucket
:aws s3api put-bucket-lifecycle --bucket
my-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 中删除文件。有关可接受的时间戳格式的信息,请参阅AWS CLI用户指南中的指定参数值。
上面示例中的每条规则都指定了其适用的策略(
Transition
或Expiration
)和文件前缀(文件夹名称)。您还可以通过指定空白前缀来创建适用于整个存储桶的规则:{ "Rules": [ { "ID": "Move to Glacier after sixty days (all objects in bucket)", "Prefix": "", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } } ] }
-
有关API详细信息,请参阅 “PutBucketLifecycle AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-logging
。
- AWS CLI
-
示例 1:设置存储桶策略日志记录
以下
put-bucket-logging
示例为设置了日志策略MyBucket。首先,使用put-bucket-policy
命令在存储桶策略中向日志记录服务主体授予权限。aws s3api put-bucket-policy \ --bucket
MyBucket
\ --policyfile://policy.json
policy.json
的内容:{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": {"Service": "logging.s3.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::MyBucket/Logs/*", "Condition": { "ArnLike": {"aws:SourceARN": "arn:aws:s3:::SOURCE-BUCKET-NAME"}, "StringEquals": {"aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID"} } } ] }
要应用日志记录策略,请使用
put-bucket-logging
。aws s3api put-bucket-logging \ --bucket
MyBucket
\ --bucket-logging-statusfile://logging.json
logging.json
的内容:{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "Logs/" } }
向日志记录服务主体授予
s3:PutObject
权限需要使用put-bucket-policy
命令。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 Amazon S3 服务器访问日志记录。
示例 2:设置仅向单个用户授予日志访问权限的存储桶策略
以下
put-bucket-logging
示例为设置了日志策略MyBucket。 AWS 用户 bob@example.com 将完全控制日志文件,其他人没有任何访问权限。首先,使用put-bucket-acl
授予 S3 权限。aws s3api put-bucket-acl \ --bucket
MyBucket
\ --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 \ --bucket
MyBucket
\ --bucket-logging-statusfile://logging.json
logging.json
的内容:{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "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详细信息,请参阅 “PutBucketLogging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-metrics-configuration
。
- AWS CLI
-
为存储桶设置指标配置
以下
put-bucket-metrics-configuration
示例为指定存储桶设置 ID 为 123 的指标配置。aws s3api put-bucket-metrics-configuration \ --bucket
my-bucket
\ --id123
\ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketMetricsConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-notification-configuration
。
- AWS CLI
-
启用存储桶的指定通知
以下
put-bucket-notification-configuration
示例将通知配置应用于名为my-bucket
的存储桶。该文件notification.json
是当前文件夹中的JSON文档,用于指定要监视的SNS主题和事件类型。aws s3api put-bucket-notification-configuration \ --bucket
my-bucket
\ --notification-configurationfile://notification.json
notification.json
的内容:{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }
该SNS主题必须附有允许 Amazon S3 向其发布内容的IAM策略。
{ "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:*:*:my-bucket" } } } ] }
-
有关API详细信息,请参阅 “PutBucketNotificationConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-notification
。
- AWS CLI
-
将通知配置应用于名为
my-bucket
的存储桶:aws s3api put-bucket-notification --bucket
my-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:my-bucket", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:my-bucket" } } } ] }
-
有关API详细信息,请参阅 “PutBucketNotification AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-ownership-controls
。
- AWS CLI
-
更新存储桶的存储桶所有权设置
以下
put-bucket-ownership-controls
示例更新了存储桶的存储桶所有权设置。aws s3api put-bucket-ownership-controls \ --bucket
DOC-EXAMPLE-BUCKET
\ --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"此命令不生成任何输出。
有关更多信息,请参阅 Amazon S3 用户指南中的为现有存储桶设置对象所有权。
-
有关API详细信息,请参阅 “PutBucketOwnershipControls AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-policy
。
- AWS CLI
-
此示例允许所有用户检索中的任何对象,MyBucket但中的对象除外MySecretFolder。它还向 AWS 账户的根用户授予
put
和delete
权限1234-5678-9012
:aws s3api put-bucket-policy --bucket
MyBucket
--policyfile://policy.json
policy.json:
{
"Statement":[
{
"Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource":"arn:aws:s3:::MyBucket/*"
},
{
"Effect": "Deny", "Principal": "*", "Action": "s3:GetObject", "Resource":"arn:aws:s3:::MyBucket/MySecretFolder/*"
},
{
"Effect": "Allow", "Principal":{
"AWS":"arn:aws:iam::123456789012:root"
},
"Action":[
"s3:DeleteObject","s3:PutObject"
],
"Resource":"arn:aws:s3:::MyBucket/*"
}
]
}
-
有关API详细信息,请参阅 “PutBucketPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-replication
。
- AWS CLI
-
为 S3 存储桶配置复制
以下
put-bucket-replication
示例将复制配置应用于指定的 S3 存储桶。aws s3api put-bucket-replication \ --bucket
AWSDOC-EXAMPLE-BUCKET1
\ --replication-configurationfile://replication.json
replication.json
的内容:{ "Role": "arn:aws:iam::123456789012:role/s3-replication-role", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": ""}, "Destination": { "Bucket": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2" } } ] }
目标存储桶必须已启用版本控制。指定的角色必须具有写入目标存储桶的权限,并且必须建立允许 Amazon S3 代入角色的信任关系。
示例角色权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2/*" } ] }
示例信任关系策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
此命令不生成任何输出。
有关更多信息,请参阅《Amazon Simple Storage Service 控制台用户指南》中的这是主题标题:
-
有关API详细信息,请参阅 “PutBucketReplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-request-payment
。
- AWS CLI
-
示例 1:为存储桶启用“申请方付款”配置
以下
put-bucket-request-payment
示例为指定的存储桶启用requester pays
。aws s3api put-bucket-request-payment \ --bucket
my-bucket
\ --request-payment-configuration '{"Payer":"Requester"}
'此命令不生成任何输出。
示例 2:为存储桶禁用“申请方付款”配置
以下
put-bucket-request-payment
示例为指定的存储桶禁用requester pays
。aws s3api put-bucket-request-payment \ --bucket
my-bucket
\ --request-payment-configuration '{"Payer":"BucketOwner"}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutBucketRequestPayment AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-tagging
。
- AWS CLI
-
以下命令将标记配置应用于名为
my-bucket
的存储桶:aws s3api put-bucket-tagging --bucket
my-bucket
--taggingfile://tagging.json
该文件
tagging.json
是当前文件夹中的一个JSON文档,它指定了标签:{ "TagSet": [ { "Key": "organization", "Value": "marketing" } ] }
或者,直接从命令行将标记配置应用于
my-bucket
:aws s3api put-bucket-tagging --bucket
my-bucket
--tagging 'TagSet=[{Key=organization,Value=marketing}]
'-
有关API详细信息,请参阅 “PutBucketTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-versioning
。
- AWS CLI
-
以下命令对于名为
my-bucket
的存储桶启用版本控制。aws s3api put-bucket-versioning --bucket
my-bucket
--versioning-configurationStatus=Enabled
以下命令启用版本控制,并使用 mfa 代码
aws s3api put-bucket-versioning --bucket
my-bucket
--versioning-configurationStatus=Enabled
--mfa"SERIAL 123456"
-
有关API详细信息,请参阅 “PutBucketVersioning AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-bucket-website
。
- AWS CLI
-
将静态网站配置应用于名为
my-bucket
的存储桶:aws s3api put-bucket-website --bucket
my-bucket
--website-configurationfile://website.json
该文件
website.json
是当前文件夹中的JSON文档,用于指定网站的索引页和错误页面:{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
-
有关API详细信息,请参阅 “PutBucketWebsite AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object-acl
。
- AWS CLI
-
以下命令
full control
向两个 AWS 用户(user1@example.com 和 user2@example.com)授予权限,向所有人read
授予权限:aws s3api put-object-acl --bucket
MyBucket
--keyfile.txt
--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com
--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers
见 http://docs.aws.amazon。 com/AmazonS3/latest/API/RESTBucketPUTacl.html 了解有关自定义的详细信息ACLs(例如 s3api ACL 命令使用相同的速记参数表示法)。
put-object-acl
-
有关API详细信息,请参阅 “PutObjectAcl AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object-legal-hold
。
- AWS CLI
-
对对象应用法定保留
以下
put-object-legal-hold
示例在doc1.rtf
对象上设置了法定保留。aws s3api put-object-legal-hold \ --bucket
my-bucket-with-object-lock
\ --keydoc1.rtf
\ --legal-holdStatus=ON
此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutObjectLegalHold AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object-lock-configuration
。
- AWS CLI
-
在存储桶上设置对象锁定配置
以下
put-object-lock-configuration
示例在指定存储桶上设置了 50 天的对象锁定。aws s3api put-object-lock-configuration \ --bucket
my-bucket-with-object-lock
\ --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutObjectLockConfiguration AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object-retention
。
- AWS CLI
-
为对象设置对象保留配置
以下
put-object-retention
示例为指定对象设置直到 2025 年 1 月 1 日的对象保留配置。aws s3api put-object-retention \ --bucket
my-bucket-with-object-lock
\ --keydoc1.rtf
\ --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutObjectRetention AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object-tagging
。
- AWS CLI
-
在对象上设置标签
以下
put-object-tagging
示例在指定对象confidential
上设置带有键designation
和值的标签。aws s3api put-object-tagging \ --bucket
my-bucket
\ --keydoc1.rtf
\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}
'此命令不生成任何输出。
以下
put-object-tagging
示例在指定对象上设置多个标签集。aws s3api put-object-tagging \ --bucket
my-bucket-example
\ --keydoc3.rtf
\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}
'此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutObjectTagging AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-object
。
- AWS CLI
-
以下示例使用
put-object
命令将对象上传到 Amazon S3:aws s3api put-object --bucket
text-content
--keydir-1/my_images.tar.bz2
--bodymy_images.tar.bz2
以下示例演示了如何上传视频文件(该视频文件是使用 Windows 文件系统语法指定的。):
aws s3api put-object --bucket
text-content
--keydir-1/big-video-file.mp4
--body e:\media\videos\f-sharp-3-data-services.mp4有关上传对象的更多信息,请参阅《Amazon S3 开发人员指南》中的“上传对象”。
-
有关API详细信息,请参阅 “PutObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用put-public-access-block
。
- AWS CLI
-
为存储桶设置阻止公有访问配置
以下
put-public-access-block
示例为指定存储桶设置限制性封禁公共访问配置。aws s3api put-public-access-block \ --bucket
my-bucket
\ --public-access-block-configuration"BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutPublicAccessBlock AWS CLI
命令参考”。
-
以下代码示例显示了如何使用rb
。
- AWS CLI
-
示例 1:删除存储桶
以下
rb
命令删除存储桶。在此示例中,用户的存储桶是mybucket
。请注意,存储桶必须为空才能删除:aws s3 rb
s3://mybucket
输出:
remove_bucket: mybucket
示例 2:强制删除存储桶
以下
rb
命令使用--force
参数首先删除存储桶中的所有对象,然后移除存储桶本身。在此示例中,用户的存储桶为mybucket
,其中的对象mybucket
为test1.txt
和test2.txt
:aws s3 rb
s3://mybucket
\ --force输出:
delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt remove_bucket: mybucket
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Rb
。
-
以下代码示例显示了如何使用restore-object
。
- AWS CLI
-
为对象创建还原请求
以下
restore-object
示例将存储桶my-glacier-bucket
的指定 Amazon S3 Glacier 对象还原为 10 天。aws s3api restore-object \ --bucket
my-glacier-bucket
\ --keydoc1.rtf
\ --restore-requestDays=10
此命令不生成任何输出。
-
有关API详细信息,请参阅 “RestoreObject AWS CLI
命令参考”。
-
以下代码示例显示了如何使用rm
。
- AWS CLI
-
示例 1:删除 S3 对象
以下
rm
命令删除单个 s3 对象:aws s3 rm
s3://mybucket/test2.txt
输出:
delete: s3://mybucket/test2.txt
示例 2:删除存储桶中的所有内容
以下
rm
命令在传递参数--recursive
时递归删除指定存储桶和前缀下的所有对象。在此示例中,存储桶mybucket
包含对象test1.txt
和test2.txt
:aws s3 rm
s3://mybucket
\ --recursive输出:
delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt
示例 3:删除存储桶中的所有内容,“.jpg” 文件除外
以下
rm
命令在传递参数时递归删除指定存储桶和前缀下的所有对象,--recursive
同时使用参数排除某些对象。--exclude
在此示例中mybucket
,存储桶包含对象test1.txt
和test2.jpg
:aws s3 rm
s3://mybucket/
\ --recursive \ --exclude"*.jpg"
输出:
delete: s3://mybucket/test1.txt
示例 4:删除存储桶中的所有内容,但指定前缀下的对象除外
以下
rm
命令在传递参数时递归删除指定存储桶和前缀下的所有对象,--recursive
同时使用参数排除特定前缀下的所有对象--exclude
。在此示例中mybucket
,存储桶包含对象test1.txt
和another/test.txt
:aws s3 rm
s3://mybucket/
\ --recursive \ --exclude"another/*"
输出:
delete: s3://mybucket/test1.txt
示例 5:从 S3 接入点删除对象
以下
rm
命令从接入点 (mykey
) 中删除单个对象 (myaccesspoint
)。:: 以下rm
命令从接入点 (mykey
) 中删除单个对象 (myaccesspoint
)。aws s3 rm
s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
输出:
delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 Rm
。
-
以下代码示例显示了如何使用select-object-content
。
- AWS CLI
-
根据SQL语句筛选 Amazon S3 对象的内容
以下
select-object-content
示例my-data-file.csv
使用指定的SQL语句筛选对象并将输出发送到文件。aws s3api select-object-content \ --bucket
my-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详细信息,请参阅 “SelectObjectContent AWS CLI
命令参考”。
-
以下代码示例显示了如何使用sync
。
- AWS CLI
-
示例 1:将所有本地对象同步到指定存储桶
以下
sync
命令通过将本地文件上传到 S3,将本地目录中的对象同步到指定的前缀和存储桶。如果本地文件的大小与 S3 对象的大小不同,本地文件的上次修改时间晚于 S3 对象的上次修改时间,或者本地文件在指定的存储桶和前缀下不存在,则需要上传本地文件。在此示例中,用户将存储桶同步mybucket
到本地当前目录。本地当前目录包含文件test.txt
和test2.txt
。存储桶不mybucket
包含任何对象。aws s3 sync
.
s3://mybucket
输出:
upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt
示例 2:将指定的 S3 存储桶中的所有 S3 对象同步到另一个存储桶
以下
sync
命令通过复制 S3 对象,将指定前缀下的对象和存储桶同步到另一个指定前缀下的对象和存储桶。如果两个 S3 对象的大小不同,源的最后修改时间晚于目标的上次修改时间,或者 S3 对象在指定的存储桶和前缀目标下不存在,则需要复制 S3 对象。在此示例中,用户将存储桶同步
mybucket
到存储桶mybucket2
。存储桶mybucket
包含对象test.txt
和test2.txt
。该存储桶不mybucket2
包含任何对象:aws s3 sync
s3://mybucket
s3://mybucket2
输出:
copy: s3://mybucket/test.txt to s3://mybucket2/test.txt copy: s3://mybucket/test2.txt to s3://mybucket2/test2.txt
示例 3:将指定 S3 存储桶中的所有 S3 对象同步到本地目录
以下
sync
命令通过下载 S3 对象将文件从指定的 S3 存储桶同步到本地目录。如果 S3 对象的大小与本地文件的大小不同,S3 对象的上次修改时间晚于本地文件的上次修改时间,或者本地目录中不存在 S3 对象,则需要下载。请注意,从 S3 下载对象时,本地文件的最后修改时间将更改为 S3 对象的上次修改时间。在此示例中,用户将存储桶同步mybucket
到当前本地目录。存储桶mybucket
包含对象test.txt
和test2.txt
。当前本地目录中没有文件:aws s3 sync
s3://mybucket
.
输出:
download: s3://mybucket/test.txt to test.txt download: s3://mybucket/test2.txt to test2.txt
示例 4:将所有本地对象同步到指定存储桶并删除所有不匹配的文件
以下
sync
命令通过将本地文件上传到 S3,将指定前缀和存储桶下的对象同步到本地目录中的文件。由于--delete
参数的原因,任何存在于指定前缀和存储桶下但不存在于本地目录中的文件都将被删除。在此示例中,用户将存储桶同步mybucket
到本地当前目录。本地当前目录包含文件test.txt
和test2.txt
。存储桶mybucket
包含对象test3.txt
:aws s3 sync
.
s3://mybucket
\ --delete输出:
upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt delete: s3://mybucket/test3.txt
示例 5:将除.jpg`文件之外的所有本地对象同步到指定存储桶
以下
sync
命令通过将本地文件上传到 S3,将指定前缀和存储桶下的对象同步到本地目录中的文件。由于--exclude
参数的原因,所有与 S3 和本地模式相匹配的文件都将被排除在同步之外。在此示例中,用户将存储桶同步mybucket
到本地当前目录。本地当前目录包含文件test.jpg
和test2.txt
。存储桶mybucket
包含与本地存储桶大小不同的对象test.jpg
test.jpg
:aws s3 sync
.
s3://mybucket
\ --exclude"*.jpg"
输出:
upload: test2.txt to s3://mybucket/test2.txt
示例 6:将除.jpg`文件之外的所有本地对象同步到指定存储桶
以下
sync
命令通过下载 S3 对象将本地目录下的文件同步到指定前缀下的对象和存储桶。此示例使用--exclude
参数标志从sync
命令中排除指定的目录和 S3 前缀。在此示例中,用户将本地当前目录同步到存储桶mybucket
。本地当前目录包含文件test.txt
和another/test2.txt
。存储桶mybucket
包含对象another/test5.txt
和test1.txt
:aws s3 sync
s3://mybucket/
.
\ --exclude"*another/*"
输出:
download: s3://mybucket/test1.txt to test1.txt
示例 7:在不同区域的存储桶之间同步所有对象
以下
sync
命令可在不同区域的两个存储桶之间同步文件:aws s3 sync
s3://my-us-west-2-bucket
s3://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详细信息,请参阅《AWS CLI 命令参考》中的 “同步
”。
-
以下代码示例显示了如何使用upload-part-copy
。
- AWS CLI
-
通过从现有对象中复制数据作为数据源来上传部分对象
以下
upload-part-copy
示例通过从现有对象复制数据作为数据源来上传部件。aws s3api upload-part-copy \ --bucket
my-bucket
\ --key"Map_Data_June.mp4"
\ --copy-source"my-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详细信息,请参阅 “UploadPartCopy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用upload-part
。
- AWS CLI
-
以下命令上传使用
create-multipart-upload
命令启动的分段上传中的第一个分段:aws s3api upload-part --bucket
my-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详细信息,请参阅 “UploadPart AWS CLI
命令参考”。
-
以下代码示例显示了如何使用website
。
- AWS CLI
-
将 S3 存储桶配置为静态网站
以下命令将名为静态网站的存储桶配置
my-bucket
为静态网站。索引文档选项指定了访问者my-bucket
在导航到网站时将被引导到的文件URL。在本例中,存储桶位于 us-west-2 区域,因此该网站将显示在。http://my-bucket.s3-website-us-west-2.amazonaws.com
存储桶中显示在静态站点上的所有文件都必须配置为允许访问者打开它们。文件权限是与存储桶网站配置分开配置的。
aws s3 website
s3://my-bucket/
\ --index-documentindex.html
\ --error-documenterror.html
有关在 Amazon S3 中托管静态网站的信息,请参阅《亚马逊简单存储服务开发者指南》中的托管静态网站。
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 “网站
”。
-