Загружая ZIP-файл в S3, используйте EC2 для распаковки - PullRequest
21 голосов
/ 15 марта 2012

У меня есть веб-приложение Codeigniter, которое каждый час загружает множество крошечных файлов в Amazon S3, что приводит к очень быстрому увеличению моих запросов на S3. Один из способов преодоления этого - заархивировать файл, загрузить ZIP-файл на S3, а затем разархивировать его, когда он находится на S3.

Можно ли это сделать с помощью EC2? Или есть лучший способ добиться этого? Спасибо !!

РЕДАКТИРОВАТЬ: Если бы я использовал EC2, использовать ли PHP для запуска создания экземпляра EC2, загрузить файл PHP, необходимый для распаковки заархивированных файлов, скопировать несжатые файлы в S3, а затем уничтожить экземпляр EC2?

Ответы [ 4 ]

27 голосов
/ 15 марта 2012

Если у вас есть компьютер EC2 в том же регионе, я бы посоветовал вам загрузить его туда в архиве, а затем сбросить его на s3 оттуда разархивировать. S3 не может разархивировать его самостоятельно, так как он полностью статичен.

Между ec2 и s3 нет зарядов, поэтому ec2 может справиться с расстегиванием молнии, а затем записать ее в корзину s3 без дополнительных затрат на передачу.

9 голосов
/ 21 ноября 2017

Вы можете написать код в лямбде, чтобы распаковать файл из корзины S3, вам просто нужно его использовать, AWS Lambda сделает это за вас.

Ссылка:

  1. https://github.com/carloscarcamo/aws-lambda-unzip-py/blob/master/unzip.py
  2. https://github.com/mehmetboraezer/aws-lambda-unzip
2 голосов
/ 06 мая 2014

Я использую этот сервис для распаковки файлов, содержащих тысячи крошечных файлов изображений, каждый загружаемый zip-файл составляет около 4 ГБ, а распаковка с использованием http://www.cloudzipinc.com/service/s3_unzip, стоит около $ 1, возможно, это может кому-то помочь.

Сказав это, вам может оказаться проще использовать Python с библиотекой Boto. Это будет работать намного эффективнее, чем PHP.

2 голосов
/ 15 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...