S3に17.7 GBのファイルがあります。 Hiveクエリの出力として生成されたものであり、圧縮されていません。
圧縮すると、約2.2GB(gzip)になることを知っています。転送がボトルネック(250kB/s)のときに、このファイルをローカルでできるだけ早くダウンロードするにはどうすればよいですか。
S3でファイルを圧縮する簡単な方法、またはs3cmd、boto、または関連するツールで転送時に圧縮を有効にする方法は見つかりませんでした。
S3はストリーム圧縮をサポートしておらず、アップロードされたファイルをリモートで圧縮することもできません。
これが1回限りのプロセスである場合は、同じリージョンのEC2マシンにダウンロードし、そこで圧縮してから、宛先にアップロードすることをお勧めします。
http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html
これがより頻繁に必要な場合
遅い答えですが、これは完全に機能していることがわかりました。
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バケットにアップロードされます。ドライランフラグを削除する前にデータを確認してください。