Auf lokale Images zurückgreifen, wenn Cloud Files kaputt geht?

12

Ich verwende das Cloud Files- Modul, das die Rackspace Cloud Files-PHP-API verwendet , um alle hochgeladenen Dateien auf Rackspace Cloud Files (einem CDN) zu speichern. Es funktioniert alles sehr gut.

Heute jedoch hatte Rackspace selbst einen Ausfall im Zusammenhang mit seiner API und meine gesamte Site brach zusammen. Ich kann das absolut nicht zulassen, wenn meine Seite endlich online ist. Gibt es eine Möglichkeit, die Dateien sowohl lokal als auch in Cloud-Dateien zu speichern, sodass bei Problemen eine Einstellung auf den Verwaltungsseiten umgedreht werden kann und die lokalen Dateien verwendet werden, damit die Site weiterhin funktioniert, während Rackspace arbeitet das Problem?

Kenny Wyland
quelle
Es interessiert mich, dass Sie sich für die Verwendung von Cloud-Dateien (Rackspace-spezifisch) und nicht für das CDN-Modul entschieden haben . Hat das CDN-Modul keinen Fallback? Ich bin kein Profi auf CDN.
Duncanmoo
1
Ich habe das Cloud Files-Modul verwendet, da es die eigentliche Übertragung der Dateien auf Rackspace übernimmt, das CDN-Modul jedoch nicht. CDN erfordert eine externe Anwendung namens File Conveyor, um die Übertragungen durchzuführen. Ich hatte keine Probleme damit, File Conveyor für die Arbeit mit Cloud-Dateien zu nutzen, ohne meine Website zu beschädigen, und entschied mich für die einfachere Lösung.
Kenny Wyland
2
Vielleicht ist es eine gute Idee, dies als Feature-Anfrage auf der Issue-Seite des Moduls nachzufragen. Theoretisch sollte eine "404" -Antwort zurückgegeben werden, wenn in der Rackspace-Cloud Probleme bei der Bereitstellung einer Datei auftreten. In diesem Fall muss das Modul auf das lokale Dateisystem zurückgreifen. Ich denke, das kann der Modulentwickler machen.
ANDiTKO
Das CDN-Modul unterstützt die Modi "File Conveyor" und "Origin Pull". Origin Pull erfolgt automatisch, File Conveyor nicht. Rackspace Cloud-Dateien unterstützen nur File Conveyor. Daher ist ein spezielles Modul für die automatische Übertragung von Dateien erforderlich.
Mike

Antworten:

6

In Javascript können Sie den Onerror Event Listener des Bildes anhören.

Stellen Sie die Quelle wie gewohnt ein. Stellen Sie in onerror this.src auf Ihren lokalen Image-Pfad ein:

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

Sie können jquery verwenden, um alle Bilder auf der Seite zu durchlaufen und den onerror-Ereignis-Listener hinzuzufügen

Neil McGuigan
quelle
Nicht genau das, wonach ich gesucht habe, aber dennoch eine vernünftige Lösung.
Kenny Wyland