web-dev-qa-db-ja.com

S3でファイルを圧縮する

S3に17.7 GBのファイルがあります。 Hiveクエリの出力として生成されたものであり、圧縮されていません。

圧縮すると、約2.2GB(gzip)になることを知っています。転送がボトルネック(250kB/s)のときに、このファイルをローカルでできるだけ早くダウンロードするにはどうすればよいですか。

S3でファイルを圧縮する簡単な方法、またはs3cmd、boto、または関連するツールで転送時に圧縮を有効にする方法は見つかりませんでした。

24
Matt Joiner

S3はストリーム圧縮をサポートしておらず、アップロードされたファイルをリモートで圧縮することもできません。

これが1回限りのプロセスである場合は、同じリージョンのEC2マシンにダウンロードし、そこで圧縮してから、宛先にアップロードすることをお勧めします。

http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html

これがより頻繁に必要な場合

S3経由でAmazon CloudFrontからgzipped CSSおよびJavaScriptを提供

23
Michel Feldheim

遅い答えですが、これは完全に機能していることがわかりました。

aws s3 sync s3://your-pics .

for file in "$(find . -name "*.jpg")"; do gzip "$file"; echo "$file";  done

aws s3 sync . s3://your-pics --content-encoding gzip --dryrun

これにより、s3バケット内のすべてのファイルがマシン(またはec2インスタンス)にダウンロードされ、画像ファイルが圧縮されてs3バケットにアップロードされます。ドライランフラグを削除する前にデータを確認してください。

9
Navaneeth Pk