S3 Boto3 python - изменить все файлы acl для публичного чтения - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь изменить ACL 500k файлов в папке S3 с 'private' на 'public-read'

Есть ли способ ускорить это?

Я использую приведенный ниже фрагмент.

from boto3.session import Session
from multiprocessing.pool import ThreadPool
pool = ThreadPool(processes=100)

BUCKET_NAME = ""
aws_access_key_id = ""
aws_secret_access_key = ""
Prefix='pics/'

session = Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
_s3 = session.resource("s3")
_bucket = _s3.Bucket(BUCKET_NAME)

def upload(eachObject):
    eachObject.Acl().put(ACL='public-read')

counter = 0
filenames = []
for eachObject in _bucket.objects.filter(Prefix=Prefix):
    counter += 1
    filenames.append(eachObject)
    if counter % 100 == 0:
        pool.map(upload, filenames)
        print(counter)
if filenames:
    pool.map(upload, filenames)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...