3

EC2を使用して、S3バケットに保存されているいくつかのファイルを圧縮しようとしています。SWFUploadをPHPで動作させ、ファイルをS3にアップロードすることに成功しました。莫大な転送コストをかけずにS3ファイルを圧縮する最良の方法は、EC2を使用してS3を処理することだと読みました。多大な労力を費やした後、EC2サーバーを実行してSSHで接続することができましたが、ここから何をすべきかわかりません。

S3ファイルを圧縮してバケットに戻すための最良の方法は何ですか?

理想的には、ユーザーのバッチアップロードがSQSをトリガーし、EC2サーバーを1日1回起動してすべてを圧縮し、ダウンロードのためにS3に戻します。ここからどこへ行くのかわからない。アイデア?

4

1 に答える 1

3

ec2、s3、およびその他の AWS サービスへのコマンドライン ツールである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
于 2010-10-24T23:44:14.767 に答える