Кэширование Azure CDN, изображения не обновляются немедленно? - PullRequest
0 голосов
/ 25 июня 2018

Я создал CDN в Azure и создаю веб-приложение .NET MVC, которое позволяет загружать изображения в CDN.

Первоначальная загрузка работает отлично, и изображение доступно сразу послеЗагрузка.

Если я загружаю снова с другим изображением, оно не обновляется немедленно из веб-приложения.Однако на моем портале Azure я могу открыть контейнер учетной записи хранения и сразу же увидеть новый доступный файл.

Независимо от того, сколько я обновляю или перезапускаю веб-приложение, изображение не отображается до 5-10минут после загрузки обновленного изображения.

Мне кажется, что это как-то связано с кэшированием CDN в Azure.Я искал решение в течение последних нескольких часов, и, похоже, в Интернете очень мало документации по этой конкретной проблеме (что странно, но я не первый, у кого возникла эта проблема, верно?).

Кроме того, в соответствии с правилами кэширования в конечной точке CDN в Azure я вижу только один раскрывающийся список вместо множества параметров, которые я видел в других местах в Интернете, и ни один из параметров не позволяет мне отключить кэширование.

Итак, как я могу получить обновленные изображения для немедленного отображения?

Спасибо !!

РЕДАКТИРОВАТЬ:

Вот решение, которое в настоящее время работаетдля меня:

Создайте все изображения с GUID в качестве имени.Когда пользователь загружает новое изображение, удаляет старое и загружает новое с другим GUID.Поскольку они имеют разные имена, кеширование CDN не мешает.

Ответы [ 2 ]

0 голосов
/ 18 июля 2018

Не редкая проблема.

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

Затем проверьте, что источник обслуживает ожидаемые заголовки HTTP (expires, max-age, etag и cache-control, в зависимости от ситуации) ичто они имеют значения, подходящие для вашего контента.

Также изучите API очистки.Если ваш исходный ресурс существует в CDN, вам может потребоваться вызвать API очистки, если при загрузке пользователя будет создан тот же ключ.

HTH

0 голосов
/ 25 июня 2018

Возможно, вы сталкиваетесь с кешем браузера .Вы можете перезагрузить сайт и кеш, используя STRG + F5 или использовать другой браузер, чтобы убедиться, что изображение обновляется в CDN.

Решением было бы добавить параметр запроса к вашему изображению.Напримерhttps://yourdomain/storage/tmp.img?version=1234 Затем вы можете обновить версию, которая заставит браузеры перезагрузить изображение (но для этого потребуется повторное развертывание вашего приложения).

...