Как я могу обновить файлы на CDN Amazon (CloudFront)?
-
23-08-2019 - |
Вопрос
Есть ли какой-либо способ обновить файлы, хранящиеся в Amazon CloudFront (сервис CDN Amazon)?Похоже, что для этого не потребуется никакого обновления файла, который мы создаем (напримерудаление файла и сохранение нового с тем же именем файла, что и раньше).Должен ли я явно запускать процесс обновления для удаления файлов с пограничных серверов, чтобы опубликовать новое содержимое файла?
Спасибо за вашу помощь
Решение
Amazon добавила функцию аннулирования. Это ссылка на API.
Пример запроса из ссылки на API:
POST /2010-08-01/distribution/[distribution ID]/invalidation HTTP/1.0
Host: cloudfront.amazonaws.com
Authorization: [AWS authentication string]
Content-Type: text/xml
<InvalidationBatch>
<Path>/image1.jpg</Path>
<Path>/image2.jpg</Path>
<Path>/videos/movie.flv</Path>
<CallerReference>my-batch</CallerReference>
</InvalidationBatch>
Другие советы
Вот как я это делаю, используя панель управления CloudFront.
- Выберите CloudFront из списка сервисов.
- Убедитесь, что Распределения в левом верхнем углу выбирается.
- Затем щелкните ссылку для соответствующего дистрибутива из списка (в разделе id).
- Выберите Недействительность вкладка.
- Щелкните по Создать Недействительность нажмите и введите расположение файлов, которые вы хотите сделать недействительными (обновленными).
Например:
- Затем нажмите на Признать недействительным нажмите, и теперь вы должны увидеть Прогресс в соответствии со статусом.
Обычно для завершения вашего признания недействительным требуется 10-15 минут запрос, в зависимости от размера вашего запроса.
Как только он скажет "завершено", вы можете идти.
Совет: После того как вы создали несколько недействительных, если вы вернетесь и вам нужно будет аннулировать те же файлы, используйте поле выбора и Копировать ссылка станет доступной, что сделает это еще быстрее.
Установите TTL = 1 часу и замените
http://developer.amazonwebservices.com/connect/ann.jspa?annID=655
Скачайте бесплатную версию Cloudberry Explorer, чтобы сделать это с отдельными файлами:http://blog.cloudberrylab.com/2010/08/how-to-manage-cloudfront-object.html
Cyberduck для Mac и Windows предоставляет пользовательский интерфейс для аннулирования объекта.Обратитесь к http://trac.cyberduck.ch/wiki/help/en/howto/cloudfront.
Кажется, я припоминаю, что уже видел это на serverfault, но вот ответ:
Под "Amazon CDN", я полагаю, вы имеете в виду "CloudFront"?
Он кэширован, поэтому, если вам нужно обновить его прямо сейчас (в отличие от "новая версия будет видна через 24 часа"), вам придется выбрать новое имя.Вместо "logo.png" используйте "logo.png--0", а затем обновите его, используя "logo.png--1", и измените свой html, чтобы указать на это.
Нет никакого способа "сбросить" amazon cloudfront.
Редактировать:Это был это невозможно, это сейчас.Смотрите комментарии к этому ответу.
Пользовательский интерфейс CloudFront предлагает это с помощью кнопки [i] > "Настройки распространения", вкладка "Недействительные".: https://console.aws.amazon.com/cloudfront/home#distribution-settings
В ruby, используя туманный драгоценный камень
AWS_ACCESS_KEY = ENV['AWS_ACCESS_KEY_ID']
AWS_SECRET_KEY = ENV['AWS_SECRET_ACCESS_KEY']
AWS_DISTRIBUTION_ID = ENV['AWS_DISTRIBUTION_ID']
conn = Fog::CDN.new(
:provider => 'AWS',
:aws_access_key_id => AWS_ACCESS_KEY,
:aws_secret_access_key => AWS_SECRET_KEY
)
images = ['/path/to/image1.jpg', '/path/to/another/image2.jpg']
conn.post_invalidation AWS_DISTRIBUTION_ID, images
даже при признании недействительным процесс обработки и обновления подтверждения недействительности на всех пограничных серверах Amazon по-прежнему занимает 5-10 минут
CrossFTP для Win, Mac и Linux предоставляет пользовательский интерфейс для аннулирования CloudFront, проверьте это для получения более подробной информации: http://crossftp.blogspot.com/2013/07/cloudfront-invalidation-with-crossftp.html