Подтвердить что ты не робот

Запретить все файлы в папке в облачной консоли

Я знаю, что cloudfront предоставляет механизм для аннулирования файла, но что, если я хочу аннулировать все файлы в определенной папке? В документации упоминается, что я не могу использовать подстановочные знаки для этого.

Здесь инструкция, взятая из официальной документации:

Вы должны явно аннулировать каждый объект и все каталоги, которые вы хотите, чтобы CloudFront прекратил показ. Вы не можете использовать подстановочные знаки для аннулирования групп объектов, и вы не можете аннулировать все объекты в каталоге, указав путь к каталогу.

4b9b3361

Ответ 1

Еще в 2013 году, в предыдущей версии этого ответа, я написал:

Вы не можете этого сделать, потому что "файлы" в облачном режиме не находятся в "папках". Все является объектом, и каждый объект является независимым.

В то время это было полностью верно. По-прежнему верно, что все является объектом, и каждый объект является независимым, но CloudFront изменил свою логику недействительности. Продолжайте читать.

В то время это было также верно, и опять-таки, в некоторой степени, это все равно:

В облачной документации упоминаются "недействительные каталоги", но это относится к веб-сайтам, которые фактически разрешают список каталогов [когда] листинг - это то, что вы хотите аннулировать, так что это тоже не поможет.

Однако времена значительно изменились.

Технически каждый объект по-прежнему независим, и CloudFront на самом деле не сохраняет их в иерархических папках, но интерфейс недействительности был расширен, чтобы поддерживать сопоставление подстановочных символов с левым якорем. Вы можете аннулировать содержимое "папки" или любого количества объектов, которые могут совпадать с подстановочным знаком в конце строки. Все, что соответствует, будет выведено из кеша:

Чтобы недействить объекты, вы можете указать либо путь для отдельных объектов, либо путь, который заканчивается подстановочным знаком *, который может применяться к одному объекту или ко многим, как показано в следующих примерах:

/images/image1.jpg

/images/image*

/images/*

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

Хорошее улучшение. Но есть ли улов?

Помимо того факта, что для недействительности требуется - как всегда - от 10 до 15 минут для завершения при обычных операциях, ответ - нет, на самом деле нет catch. Первые 1000 путей недействительности (ранее "запросы" и "запрос" были для одного объекта), которые вы отправляете в течение месяца, являются бесплатными; после этого есть заряд, но:

Цена такая же, независимо от того, недействительны ли вы отдельные объекты или с помощью шаблона *, чтобы аннулировать несколько объектов.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#PayingForInvalidation

Обратите внимание, что если вы не включаете * в конце, то для недействительности для /images/ (например) будет указано только CloudFront, чтобы сделать недействительным какой-либо единственный объект, который ваш исходный сервер возвращает для запросов для /images/.

Ведущая косая черта документируется как необязательная.

Ответ 2

Пока вы хотите сделать недействительным разумное количество объектов, одним из самых простых способов, которые я нашел, является выбор объектов в Cyberduck, щелкните правой кнопкой мыши > выберите Info и перейдите на вкладку Distribution, и вы можете сделать недействительным оттуда. Cyberduck отправит один запрос аннулирования на ваш Cloudfront со списком выбранных файлов.

Cyberduck также является открытым исходным кодом.

enter image description here

ps: никак не связан с продуктом. Просто укажите альтернативу.

Ответ 3

По состоянию на 2015-05-25 вы можете аннулировать использование шаблона. Пример: /* или /images/*

Также гораздо дешевле сделать это, так как что-то вроде /images/* считается одним из объектов для недействительности, вместо того, чтобы взимать плату за тысячи изображений в каталоге /images.

http://aws.amazon.com/about-aws/whats-new/2015/05/amazon-cloudfront-makes-it-easier-to-invalidate-multiple-objects/