Как загрузить zip-файл на s3 с помощью boto? - PullRequest
2 голосов
/ 13 марта 2012

Я заархивировал папку с несколькими подкаталогами. Когда я загружаю его на s3, используя boto Читая так,

zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read()

Затем все файлы из всех подкаталогов копируются в корневой каталог. Это не подкаталог существует в s3.

Как загрузить zip-файл из папки в s3?

1 Ответ

0 голосов
/ 06 октября 2012

После выполнения команды, показанной выше, zip_data будет содержать байты, содержащиеся в zip-файле. Если вы затем запишите эти данные в S3, вы получите единственный объект (ключ) в S3, который содержит эти данные. Это то, что вы хотите?

Звучит так, будто вы хотите, чтобы zip-файл был расширен, а все отдельные файлы и каталоги в нем были сохранены в S3 как отдельные объекты. Если это так, вам нужно развернуть zip-файл локально, а затем пройтись по иерархии и сохранить каждый отдельный файл на S3. Вы можете использовать инструмент командной строки s3put в boto, чтобы сделать это для вас.

Невозможно заставить сам S3 автоматически распаковать содержимое файла zip.

...