Возврат к локальным изображениям при разрыве облачных файлов?

12

Я использую модуль Cloud Files, который использует PHP API Rackspace Cloud Files для хранения всех загруженных файлов в Rackspace Cloud Files (CDN). Все работает очень хорошо.

Однако сегодня в Rackspace произошел сбой, связанный с их API, и это привело к поломке всего сайта. Я абсолютно не могу, чтобы это случилось, когда мой сайт наконец-то появился. Есть ли способ сохранить файлы локально, а также в облачных файлах, чтобы в случае возникновения проблем я мог щелкнуть настройку на страницах администратора, и он начал бы использовать локальные файлы, чтобы сайт продолжал работать, пока Rackspace работает над проблема?

Кенни Уайлэнд
источник
Мне интересно, что вы решили использовать Cloud Files (специфичные для Rackspace), а не модуль CDN . Модуль CDN не имеет запасной вариант? Я не профессионал в CDN.
Дунканмоо
1
Я использовал модуль Cloud Files, потому что он обрабатывает фактическую передачу файлов в Rackspace, а модуль CDN - нет. Для передачи CDN требуется внешнее приложение File Conveyor. У меня не было проблем с тем, чтобы File Conveyor работал с облачными файлами, не ломая мой сайт, поэтому я выбрал более простое решение.
Кенни Уайлэнд,
2
Может быть, это хорошая идея, чтобы спросить об этом как запрос функции на странице выпуска модуля. Теоретически, если в облаке Rackspace есть проблемы с обслуживанием файла, следует вернуть ответ «404». Затем, если это произойдет, модуль должен вернуться к локальной файловой системе. Я думаю, что это может сделать разработчик модуля.
АНДИТКО
Модуль CDN поддерживает ОБА «Режим конвейера» и «Исходное извлечение». Исходная тяга автоматическая, файлового конвейера нет. Облачные файлы Rackspace поддерживают только файловый конвейер, поэтому необходим специальный модуль для автоматической обработки передачи файлов.
Майк

Ответы:

6

В javascript вы можете прослушивать прослушиватель события onerror изображения.

установите источник как обычно. в onerror установите this.src для вашего локального пути к изображению:

<img src="//somecdn.com/cat.jpg" onerror="this.src='/localpath/cat.jpg';" />

Вы можете использовать jquery, чтобы зациклить все изображения на странице и добавить слушатель события onerror

Нил Макгиган
источник
Не совсем то, что я искал, но, тем не менее, разумное решение.
Кенни Уайлэнд