web-dev-qa-db-fra.com

Compresser le fichier sur S3

J'ai un fichier de 17,7 Go sur S3. Il a été généré en tant que sortie d'une requête Hive et n'est pas compressé.

Je sais qu'en le compressant, ce sera environ 2,2 Go (gzip). Comment puis-je télécharger ce fichier localement aussi rapidement que possible lorsque le transfert est le goulot d'étranglement (250 Ko/s).

Je n'ai trouvé aucun moyen simple de compresser le fichier sur S3 ou d'activer la compression lors du transfert dans s3cmd, boto ou des outils connexes.

24
Matt Joiner

S3 ne prend pas en charge la compression de flux et il n'est pas possible de compresser le fichier téléchargé à distance.

S'il s'agit d'un processus unique, je suggère de le télécharger sur une machine EC2 dans la même région, de le compresser là, puis de le télécharger vers votre destination.

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

Si vous en avez besoin plus fréquemment

Servant CSS et JavaScript gzippés depuis Amazon CloudFront via S

23
Michel Feldheim

Réponse tardive mais j'ai trouvé que cela fonctionnait parfaitement.

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

Cela téléchargera tous les fichiers du compartiment s3 sur la machine (ou l'instance ec2), compressera les fichiers image et les réimportera dans le compartiment s3. Vérifiez les données avant de supprimer l'indicateur dryrun.

9
Navaneeth Pk