¿Recurrir a imágenes locales cuando Cloud Files se rompe?

12

Estoy usando el módulo Cloud Files que usa la API PHP de Rackspace Cloud Files para almacenar todos los archivos cargados en Rackspace Cloud Files (un CDN). Todo funciona muy bien.

Sin embargo, hoy, el propio Rackspace tuvo una interrupción relacionada con su API y provocó la ruptura de todo mi sitio. No puedo permitir que esto suceda cuando mi sitio finalmente esté en vivo. ¿Hay alguna manera de mantener los archivos localmente así como en Cloud Files para que si hay un problema pueda cambiar una configuración en las páginas de administración y comenzará a usar los archivos locales para que el sitio continúe funcionando mientras Rackspace funciona? ¿el problema?

Kenny Wyland
fuente
Estoy interesado en que elija usar Cloud Files (Rackspace específico) y no el módulo CDN . ¿El módulo CDN no tiene respaldo? No soy profesional en CDN.
Duncanmoo
1
Usé el módulo Cloud Files porque realmente maneja la transferencia de archivos a Rackspace, mientras que el módulo CDN no. CDN requiere una aplicación externa llamada File Conveyor para hacer las transferencias. No he tenido problemas para hacer que File Conveyor funcione con Cloud Files sin romper mi sitio, por lo que elegí la solución más fácil.
Kenny Wyland
2
Tal vez sea una buena idea preguntar esto como una solicitud de función en la página de problemas del módulo. Teóricamente, si la nube Rackspace tiene problemas para servir un archivo, debería devolver una respuesta "404". Entonces, si eso sucede, el módulo debe recurrir al sistema de archivos local. Creo que esto lo puede hacer el desarrollador del módulo.
ANDiTKO
El módulo CDN admite AMBOS modos "Transportador de archivos" y "Origen de extracción". La extracción de origen es automática, el transportador de archivos no lo es. Los archivos en la nube de Rackspace solo admiten el transportador de archivos, por lo tanto, la necesidad de un módulo específico para manejar automáticamente la transferencia de archivos.
Mike

Respuestas:

6

En javascript, puede escuchar el detector de eventos onerror de la imagen.

configura la fuente como normal. en onerror, configure this.src en su ruta de imagen local:

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

podría usar jquery para recorrer todas las imágenes de la página y agregar el detector de eventos onerror

Neil McGuigan
fuente
No es exactamente lo que estaba buscando, pero una solución razonable, no obstante.
Kenny Wyland