我有一个10 ^ 6键的桶。我想让其中的所有对象都是私有的。
我尝试了s3cmd,但有些时候失败了。 我用boto3尝试过它,但速度很慢。
import boto3
boto3.setup_default_session(aws_access_key_id=access_key_id, aws_secret_access_key=secret_access_key)
s3_client = boto3.client('s3')
s3_resource = boto3.resource('s3')
bucket = s3_resource.Bucket(bucket_name)
bucket_acl = bucket.Acl()
i = 0
for object_summary in bucket.objects.all():
i += 1
object_acl = object_summary.Acl()
if i % 100 == 1:
print('{} {}'.format(i, object_summary.key))
object_acl.put(ACL='private')
有没有办法进行批量操作或通过设置一些存储桶策略来执行所有私有操作。
欢迎任何其他建议。
答案 0 :(得分:1)
你不需要做任何事情。默认情况下,Amazon S3中的对象私有。
让他们公开的事情是:
答案 1 :(得分:1)
不幸的是我没有找到一个好的解决方案。我决定在背景中使用nohup运行70个小时。
我认为可能的解决方案是将存储桶中的密钥拆分为多个集合并使用多个线程运行它们。
但最后我只等了70个小时。