Я написал код на своем бэкэнде (размещенном на Elasti c Beanstalk), чтобы извлечь файл из корзины S3 и сохранить его обратно в корзину под другим именем. Я использую boto3 и создал клиента s3 с именем 's3'.
bucketname
- это имя корзины, keyname
- это имя ключа. Я также использую модуль tempfile
tmp = tempfile.NamedTemporaryFile()
with open(tmp.name, 'wb') as f:
s3.download_fileobj(bucketname, keyname, f)
s3.upload_file(tmp, bucketname, 'fake.jpg')
Мне было интересно, было ли мое понимание выключено (все еще отлаживаю причину ошибки) - я создал tempfile
, открыл и сохранил в нем содержимое объекта с keyname
и bucketname
. Затем я загрузил этот временный файл в корзину под другим именем. Правильно ли мои рассуждения?