2013-09-06 2 views
1

Я использую сжатие gzip для Amazon S3. Я gzip HTML, JS, файлы CSS и сохраняю изображения без изменений.Развернуть gzip-контент на Amazon S3

синхронизировать все с помощью s3cmd:

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

К сожалению, это не набор Content-Encoding: gzip всех необходимых файлов.

Мне нужно найти все обновленные файлы gzip и установить Content-Encoding: gzip для каждого из них. Лучшее решение, которое я мог придумал:

  • найти все файлы с gzip'нутыми, запустив gzip --test filepath на каждом одном
  • s3cmd put --add-header='Content-Encoding: gzip' filepath s3://n12v.com/filepath, например, снова загружайте файлы , чтобы добавить заголовок.

Это очень редкое решение, есть ли лучшие способы сделать это?

ответ

1

У меня был такой же выпуск, поэтому я написал s3tup. К сожалению, он не предлагает ничего подобного флагом cf-invalidate s3cmd (пока), но он делает настройку, а rsyncing намного проще. Вы должны написать файл конфигурации, который выглядит примерно так.

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

А затем rsync из командной строки следующим образом.

$ s3tup config.yml --rsync_only 

Это еще рано разрабатывать, но, возможно, вы найдете его полезным.

Смежные вопросы