2013-09-06 8 views
1

J'utilise la compression gzip pour Amazon S3. Je gzip HTML, JS, fichiers CSS et garder les images inchangées.Déployer du contenu gzip sur Amazon S3

-je synchroniser tout en utilisant s3cmd:

s3cmd sync --cf-invalidate ./deploy s3://n12v.com 

Malheureusement, cela ne définit pas Content-Encoding: gzip à tous les fichiers nécessaires.

J'ai besoin de trouver tous les fichiers gzip mis à jour et de définir Content-Encoding: gzip pour chacun d'entre eux. La meilleure solution que je pouvais venu avec:

  • trouver tous les fichiers gzip en exécutant gzip --test filepath sur tous
  • s3cmd put --add-header='Content-Encoding: gzip' filepath s3://n12v.com/filepath, par exemple télécharger des fichiers à nouveau juste pour ajouter un en-tête.

Ceci est une solution très ad hoc, existe-t-il de meilleures façons de le faire?

Répondre

1

J'avais le même type de problème et j'ai donc écrit s3tup. Malheureusement, il n'offre pas (encore) le drapeau cf-invalidate de s3cmd, mais il rend la configuration beaucoup plus facile. Vous écririez un fichier de configuration qui ressemble à ceci.

# config.yml 
--- 
bucket: n12v.com 
rsync: ./deploy 
key_config: 
    - patterns: ['*.html', '*.css', '*.js'] 
    content_encoding: gzip 

Puis rsync à partir de la ligne de commande comme ceci. Il est encore tôt dans le développement, mais peut-être que vous le trouverez utile.