Retour aux images locales lorsque Cloud Files se casse?

12

J'utilise le module Cloud Files qui utilise l' API PHP Rackspace Cloud Files pour stocker tous les fichiers téléchargés sur Rackspace Cloud Files (un CDN). Tout fonctionne très bien.

Cependant, aujourd'hui, Rackspace lui-même a eu une panne liée à leur API et cela a provoqué la rupture de tout mon site. Je ne peux absolument pas que cela se produise lorsque mon site est enfin en ligne. Existe-t-il un moyen de conserver les fichiers localement ainsi que dans les fichiers cloud afin que s'il y a un problème, je puisse inverser un paramètre dans les pages d'administration et il commencera à utiliser les fichiers locaux afin que le site continue de fonctionner pendant que Rackspace fonctionne le problème?

Kenny Wyland
la source
Je suis intéressé par le fait que vous ayez choisi d'utiliser Cloud Files (spécifique à Rackspace) et non le module CDN . Le module CDN n'a-t-il pas de secours? Je ne suis pas un pro sur CDN.
Duncanmoo
1
J'ai utilisé le module Cloud Files car il gère le transfert des fichiers vers Rackspace, contrairement au module CDN. CDN nécessite une application externe appelée File Conveyor pour effectuer les transferts. Je n'ai eu aucun problème à faire fonctionner File Conveyor avec Cloud Files sans casser mon site, j'ai donc opté pour la solution la plus simple.
Kenny Wyland
2
C'est peut-être une bonne idée de demander cela comme une demande de fonctionnalité sur la page de problème du module. Théoriquement, si le cloud Rackspace a des problèmes pour servir un fichier, il doit retourner une réponse "404". Si cela se produit, le module doit alors revenir au système de fichiers local. Je pense que cela peut être fait par le développeur du module.
ANDiTKO
Le module CDN prend en charge les deux modes "File Conveyor" et "Origin Pull". La traction d'origine est automatique, le convoyeur de fichiers ne l'est pas. Les fichiers cloud Rackspace ne prennent en charge que le convoyeur de fichiers, d'où la nécessité d'un module spécifique pour gérer automatiquement le transfert de fichiers.
Mike

Réponses:

6

En javascript, vous pouvez écouter l'écouteur d'événement onerror de l'image.

réglez la source normalement. dans onerror, définissez this.src sur votre chemin d'image local:

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

vous pouvez utiliser jquery pour parcourir toutes les images de la page et ajouter l'écouteur d'événement onerror

Neil McGuigan
la source
Pas exactement ce que je cherchais, mais une solution raisonnable néanmoins.
Kenny Wyland