2015-09-14 3 views
1

Я пытаюсь создать рабочий процесс для обновления файлов в ведре S3 и аннулировать их на Cloudfront, чтобы он удалялся из его кеша.Рабочий процесс обновления активов на Amazon S3 и CloudFront

Эти файлы состоят из JS, CSS, изображений, носителей и т. Д. Я использую grunt, чтобы их минимизировать.

Это то, что идеальный сценарий, на мой взгляд будет:

  1. запустить хрюкать на последней кодовую для подготовки к распределению;
  2. Загрузите новые файлы с шага 1 на S3, используя утилиты aws client;
  3. аннулировать эти новые файлы на Cloudfront с помощью клиентских инструментов aws.

Проблема я столкнулся в том, что на шаге 1, Минимизированный все файлы имеют новую метку времени, чем то, что на S3, поэтому, когда я бегу AWS s3 синхронизации, он будет пытаться загрузить все файлы обратно S3. Я просто хочу, чтобы измененные файлы были загружены.

Я открыт для предложений по изменению всего рабочего процесса. Какие-либо предложения?

ответ

1

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

Он имеет many command line options, в том числе варианты аннулирования загруженных файлов из дистрибутива CloudFront.

+0

Большое вам спасибо, это именно то, что мне нужно от того, что вы говорите мне! – Raisen