Загрузка ZIP файла на S3, использование EC2 для распаковки

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

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

EDIT: Если бы я использовал EC2, я бы использовал PHP для запуска создания экземпляра EC2, загрузив файл PHP, необходимый для распаковки zipped файлов, скопируйте несжатые файлы на S3, а затем уничтожьте экземпляр EC2?

Ответы

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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