web-dev-qa-db-ja.com

Z3ファイルをS3にアップロードし、EC2を使用して解凍します

私は毎時間多くの小さなファイルをAmazon S3にアップロードしているCodeigniter Webアプリを持っています。これを克服する1つの方法は、ファイルをZip圧縮し、ZipファイルをS3にアップロードし、S3にあるときに解凍することです。

これはEC2を使用して実行できますか?またはこれを達成するためのより良い方法はありますか?ありがとうございました!!

編集:EC2を使用する場合、PHPを使用してEC2インスタンスの作成をトリガーしますか?PHP zipファイルを解凍するために必要なファイルをアップロードします、非圧縮ファイルをS3にコピーしてから、EC2インスタンスを破棄しますか?

22
Nyxynyx

同じリージョンにEC2マシンがある場合は、圧縮してそこにアップロードしてから、圧縮を解除してそこからs3にドロップすることをお勧めします。 S3は、それ自体をすべて静的なものとして単独で解凍することはできません。

Ec2とs3の間には料金が発生しないため、ec2は解凍を処理し、追加の転送料金なしでs3バケットに書き込むことができます。

28
Akshat

ラムダでコードを記述してS3バケットのファイルを解凍できます。それを使用するだけで、AWS Lambdaがこれを行います。

レフェリー:

  1. https://github.com/carloscarcamo/aws-lambda-unzip-py/blob/master/unzip.py
  2. https://github.com/mehmetboraezer/aws-lambda-unzip
9
Aman Garg

S3は単なるストレージです。アップロードするファイルは、保存されているファイルです。 Zipファイルをアップロードしてから、S3で一度抽出することはできません。アプリケーションを作成した場合、私が言える最良のことは、ファイルの格納方法を再設計することです。 S3リクエストはかなり安価です...あなたはたくさんのリクエストをしているに違いありません。

2
bwight

私はこのサービスを使用して何千もの小さな画像ファイルでいっぱいのファイルを解凍しています。アップロードする各Zipは約4GBで、解凍に約1ドルかかります http://www.cloudzipinc.com/service/s3_unzip 多分それは誰かを助けるかもしれません。

そうは言っても、BotoライブラリーではPythonを使用する方が簡単です。PHPよりもはるかに効率的に機能します。

1
Henry Cullen