Используйте EC2 для Zip S3 файлов - PullRequest
3 голосов
/ 27 сентября 2010

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

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

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

1 Ответ

3 голосов
/ 25 октября 2010

Вы должны проверить 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
...