Подтвердить что ты не робот

Сжать файл на S3

У меня есть файл с 17.7 ГБ на S3. Он был сгенерирован как результат запроса Hive, и он не сжат.

Я знаю, что, сжимая его, это будет около 2,2 ГБ (gzip). Как я могу загрузить этот файл локально как можно быстрее, когда передача является узким местом (250 кБ/с).

Я не нашел простого способа сжать файл на S3 или включить сжатие при передаче в s3cmd, boto или связанных с ним инструментах.

4b9b3361

Ответ 1

S3 не поддерживает потоковое сжатие, и при этом невозможно сжать загруженный файл удаленно.

Если это однократный процесс, я предлагаю загрузить его на компьютер EC2 в том же регионе, сжать его там и загрузить в пункт назначения.

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

Если вам это нужно чаще

Обслуживание сжатых CSS и JavaScript из Amazon CloudFront через S3

Ответ 2

Поздний ответ, но я нашел, что это работает отлично.

aws s3 sync s3://your-pics .

for i in `find | grep -E "\.jpg$|\.jpg$"`; do gzip  "$i" ; echo $i;  done

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

Это загрузит все файлы в ведро s3 на машине (или экземпляр ec2), сжимает файлы изображений и загружает их обратно в s3-ведро. Проверьте данные перед удалением флага dryrun.