У меня есть файл, содержащийся в ключе в моем ведре S3. Я хочу создать новый ключ, который будет содержать тот же файл. Можно ли обойтись без скачивания этого файла? Я ищу решение в Python (и, желательно, библиотеке boto).Как клонировать ключ в Amazon S3 с помощью Python (и boto)?
ответ
S3 позволяет объекту копировать объект. Операция CopyObject создает копию объекта, когда вы указываете ключ и ведро исходного объекта, а также ключ и ведро целевого адресата. Не уверен, что boto имеет компактную реализацию.
Просмотр исходного кода boto Я обнаружил, что объект Key имеет метод «копирования». Спасибо за ваше предложение об операции CopyObject.
Где ведро назначения ведро:
bucket.copy_key(new_key,source_bucket,source_key)
Это действительно читает ключ и помещает его в новое ведро - это не то, что вы хотите. Сожалею. –
Я не верю, что это точно. Это лучший ответ ИМО. Метод 'copy_key' передает заголовок' x-amz-copy-source' в запросе PUT, который сообщает S3 копировать напрямую из региона в регион, не загружая его на ваш компьютер. – sergiopereira
Вот их документы: http://boto.cloudhackers.com/en/latest/ref/s3.html#boto.s3.bucket.Bucket.copy_key – creimers
Хотя никто не просил, я думал, что это может быть уместным, чтобы показать, как сделать это с simples3
:
>>> b.copy("my_bucket/file.txt", "file_copy.txt", acl="public")
Я не уверен, что Boto здесь, но стоит отметить, что разрешения (ACL) будут не скопировать на S3, он будет сброшен на «частный», если ничего не указано. Чтобы скопировать ACL, вы должны сначала попросить об этом.
Я второй комментарий относительно разрешений (после обнаружения ошибки) 'dest_bucket .copy_key (key.name, src_bucket_name, key.name, preserve_acl = True) ' – nsof
Обратите внимание, что метод «copy» на объекте Key имеет параметр «preserve_acl» (по умолчанию False), который скопирует ACL источника в объект назначения.
from boto.s3.key import Key
#Get source key from bucket by name
source_key = source_bucket.get_key(source_key_name)
#Copy source key to a new bucket with a new key name (can be the same as source)
#Note: source_key is Key
source_key.copy(dest_bucket_name,dest_key_name)
#The signature of boto's Key class:
def copy(self, dst_bucket, dst_key, metadata=None,
reduced_redundancy=False, preserve_acl=False,
encrypt_key=False, validate_dst_bucket=True)
#set preserve_acl=True to copy the acl from the source key
- 1. Ошибка загрузки Amazon S3 с помощью boto + Python
- 2. Как скопировать файл через браузер в Amazon S3 с помощью Python (и boto)?
- 3. Boto Amazon S3 - Получить ведро как итератор
- 4. Amazon S3 boto: Как вы переименовываете файл в ведро?
- 5. Можно ли написать на s3 ключ с помощью boto?
- 6. Amazon S3 - ошибки загрузки с Boto
- 7. Amazon S3 изменить политику ведра с помощью boto/boto3
- 8. Не удается загрузить файл на Amazon S3 с помощью Boto
- 9. Amazon S3 удаление нескольких объектов с помощью aws или boto
- 10. Amazon AWS boto S3 Изменение содержимого файла
- 11. Как добавить тег к ключу в boto (Amazon S3)?
- 12. с помощью python boto для копирования json-файла с моей локальной машины на amazon S3
- 13. Как получить список только папок в amazon S3 с помощью python boto
- 14. Python Boto S3 для работы с пользовательскими доменами в Amazon S3
- 15. Как установить разрешения на файл (ключ) в AWS S3 с помощью библиотеки Python Boto?
- 16. Загрузить на Amazon S3 с помощью tinys3
- 17. Как загрузить файл через браузер от Amazon S3 с помощью Python (и boto) в Google App Engine?
- 18. сохранение файлов в s3 с помощью Python boto
- 19. Python boto force connect to s3
- 20. Amazon S3 доступ ключ хранение?
- 21. Подключение к Amazon SQS с помощью boto
- 22. Как установить метаданные в S3 с помощью boto?
- 23. Python Boto скачать подкаталоги S3 для Windows
- 24. Amazon MWS Boto get_matching_product_for_id
- 25. Как контролировать ведро AWS S3 с помощью python с помощью boto?
- 26. Безопасное отображение изображений с помощью Amazon S3 в Python
- 27. Как перемещать файлы между двумя ведрами Amazon S3 с помощью boto?
- 28. S3 Истечение срока действия с помощью boto
- 29. Как я могу программно проверить разрешения Amazon S3 с помощью boto?
- 30. Сделать файл в s3 общедоступным, используя python и boto
Помощь по методу копирования в модуле boto.s3.key: 'копия (самость, dst_bucket, dst_key, метаданные = None, reduced_redundancy = False, preserve_acl = False, encrypt_key = False)' метод Бото. s3.key.Key instance Скопируйте этот ключ в другое ведро. –