2010-09-27 5 views
3

Я пытаюсь использовать EC2 для хранения некоторых файлов, которые хранятся в ведре S3. Я дошел до успешного использования SWFUpload для работы с PHP и загрузки файлов на S3. Я читал, что лучший способ закрепить файлы S3 без огромных затрат на перенос - это использовать EC2 для работы с S3. После больших усилий мне удалось запустить сервер EC2 и SSH, но теперь я не знаю, что делать дальше.Используйте файлы EC2 для Zip S3

Каков наилучший способ закрепить файлы S3 и вернуть их обратно в ведро?

В идеале, пакетная загрузка пользователя запускает SQS, а затем я буду разворачивать сервер EC2 один раз в день, чтобы закрепить их все и вернуть обратно на S3 для загрузки. Не знаю, куда идти отсюда. Идеи?

ответ

3

Вы должны проверить aws - инструмент командной строки для ec2, s3 и других служб AWS.

Когда вы устанавливаете инструмент и настраиваете свои учетные данные AWS, он создает удобные символические ссылки для всех видов команд, включая s3.

Основная идея заключается в:

  • загрузить файл из ведра (s3get <bucket/file>)
  • пронестись его (gzip <file>)
  • загрузить его снова (s3put <file>)

Позвольте мне знать, если вам нужно больше указателей.

Возможно, вы хотите заархивировать файл на PHP перед его загрузкой? Для этого необходимо установить расширение zip.

sudo pecl install zip 

Ниже приведен пример сценария:

<?php 
$zip  = new ZipArchive(); 
$filename = "/tmp/" . time() .".zip"; 
if ($zip->open($filename, ZIPARCHIVE::CREATE) !== true) { 
    exit("cannot open <$filename>\n"); 
} 
$zip->addFile('/path/to/uploaded/file'); 
$zip->close(); 

// continue uploading to s3 
+0

Можете ли вы сказать мне, как загрузить файл с S3? – ehp