Unzip my_file.zip вытащил из s3 с помощью boto

Я пытаюсь использовать boto для открытия .zip файла, который у меня есть в s3 . Я пытаюсь работать с данными напрямую, я хочу избежать создания временных файлов.

 In [201]: import StringIO In [202]: import boto In [203]: conn = boto.connect_s3() In [204]: my_bucket = conn.get_bucket('my_bucket') In [205]: my_list = [ele for ele in my_bucket.list('my_file.zip')] In [206]: f = StringIO.StringIO() In [207]: my_list[0].get_file(f) In [208]: f.seek(0) 

Если бы файл не был заархивирован, я бы просто использовал:

 my_content = my_list[0].get_contents_as_string() 

но поскольку он застегнут молнией, я получаю мусор.

Ответ на этот вопрос делает то, что я хочу (я одолжил часть своей попытки) с помощью gzip , но я ничего не могу найти для zip . Я пробовал использовать zipfileZipFile , но методы read , extract и extractall , похоже, не делают того, что я хочу.

One Solution collect form web for “Unzip my_file.zip вытащил из s3 с помощью boto”

Вы должны заглянуть в модуль python gzip:

https://docs.python.org/2/library/gzip.html

вы должны иметь возможность stringIO с gzip. ,

 from boto.s3.connection import S3Connection import gzip from StringIO import StringIO S3Conn = S3Connection() # assuming your .boto has been setup Bucket = S3Conn.get_bucket('my_bucket') my_list = [gzip.GzipFile(fileobj=(StringIO(ele.get_contents_as_string()))) for ele in Bucket.list()] #for readability I pulled this out for item in my_list: item.read() 

для удобства чтения, вероятно, должно быть разбито понимание списка, но я следовал за оригинальной публикацией для сравнения.

Удачи!

  • Клавиши списка S3 boto иногда возвращают ключ каталога
  • s3- boto-list файлы в корзине по времени загрузки
  • Использование Boto для подключения к S3 с помощью Python
  • SQS: как я могу прочитать отправленное время сообщения SQS с помощью библиотеки boto Python
  • Лучшая практика для опроса очереди AWS SQS и удаления полученных сообщений из очереди?
  • Boto: Каков наилучший способ проверить, существует ли стек CloudFormation?
  • Django colcstatic boto broken pipe при большой загрузке файла
  • Чтение сырых сообщений из SARS Amazon с использованием boto
  • Различные результаты при запуске сценария загрузчика
  • Загрузка файла Boto на S3 в Windows
  • Как получить последние данные метрики Cloudwatch для экземпляра с помощью Boto?
  • Python - лучший язык программирования в мире.