如何使用 AWS CLI 更新文件夹中所有 S3 对象的 ACL?
How to update ACL for all S3 objects in a folder with AWS CLI?
作为 CodeBuild 中自动化流程的一部分,我想为给定文件夹中的所有文件(或更具体地说是具有给定前缀的所有对象)更新访问控制列表。如何在一行 bash 代码中完成?
下面的一款衬垫效果很好
aws s3api list-objects --bucket $BUCKET_NAME$ --prefix $FOLDER_NAME$
--query "(Contents)[].[Key]" --output text | while read line ; do aws s3api put-object-acl --acl public-read --bucket $BUCKET_NAME$ --key
$line ; done
它没有格式化为代码,因此无需滚动即可阅读!
您可以使用 aws s3 cp
aws s3 cp --grants foo=bar=baz s3://mybucket/mydir s3://mybucket/mydir
引用https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html
列出所有对象并通过put-object-acl修改acl
acl=public-read
aws s3 ls s3://$bucket --recursive --endpoint-url=$endpoint | awk '{print }' > tos-objects.txt
cat tos-objects.txt | while read object
do
echo -e "set acl of 3[31m $object 3[0m as $acl"
aws s3api put-object-acl --bucket $bucket --key $object --acl $acl --endpoint-url=$endpoint
done
作为 CodeBuild 中自动化流程的一部分,我想为给定文件夹中的所有文件(或更具体地说是具有给定前缀的所有对象)更新访问控制列表。如何在一行 bash 代码中完成?
下面的一款衬垫效果很好
aws s3api list-objects --bucket $BUCKET_NAME$ --prefix $FOLDER_NAME$ --query "(Contents)[].[Key]" --output text | while read line ; do aws s3api put-object-acl --acl public-read --bucket $BUCKET_NAME$ --key $line ; done
它没有格式化为代码,因此无需滚动即可阅读!
您可以使用 aws s3 cp
aws s3 cp --grants foo=bar=baz s3://mybucket/mydir s3://mybucket/mydir
引用https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html
列出所有对象并通过put-object-acl修改acl
acl=public-read
aws s3 ls s3://$bucket --recursive --endpoint-url=$endpoint | awk '{print }' > tos-objects.txt
cat tos-objects.txt | while read object
do
echo -e "set acl of 3[31m $object 3[0m as $acl"
aws s3api put-object-acl --bucket $bucket --key $object --acl $acl --endpoint-url=$endpoint
done