如何在AWS s3的单个文件夹上将public的ACL形式更改为private?。
现在我正在使用此命令
aws s3 ls --recursive s3://<bucket-name> | cut -d' ' -f5- | awk '{print $NF}' | while read line; do
echo "$line"
aws s3api put-object-acl --acl private --bucket <bucket> --key "$line"
done
但这会更改存储桶中所有文件夹的权限
答案 0 :(得分:2)
有三种方法可以授予对Amazon S3中对象的公共访问权限:
请注意,没有文件夹权限。实际上,文件夹实际上并不存在于Amazon S3存储桶中(即使看起来像它们一样,也没有!)。
默认情况下,Amazon S3中的所有数据都是私有数据。因此,要回答您的问题“我如何从公共访问变为私有访问”,答案是您应该撤消所做的一切以使其公开。。因此,如果您通过ACL授予访问权限,则应删除通过ACL进行的公共访问。 (顺便说一句,不建议使用ACL授予公共访问权限。请考虑改用Bucket Policy或IAM Policy。)
如果希望更改现有对象的ACL,则可以复制对象本身,但可以指定其他ACL。您可能还需要指定其他字段(例如元数据),以使更改生效。
有关示例,请参见:Amazon S3 changing object permissions retroactively