Czy powrócisz do obrazów lokalnych po awarii plików w chmurze?

12

Korzystam z modułu Cloud Files , który używa interfejsu API Rackspace Cloud Files PHP API do przechowywania wszystkich przesłanych plików w Rackspace Cloud Files (CDN). Wszystko działa bardzo dobrze.

Jednak dzisiaj sam Rackspace miał awarię związaną z ich API i spowodował awarię całej mojej witryny. Absolutnie nie mogę tego zrobić, kiedy moja strona jest wreszcie dostępna. Czy jest jakiś sposób, aby przechowywać pliki lokalnie, a także w plikach w chmurze, aby w razie problemu mógł przerzucić ustawienie na stronach administracyjnych i zacznie używać plików lokalnych, aby strona nadal działała, podczas gdy Rackspace działa na problem?

Kenny Wyland
źródło
Interesuje mnie to, że zdecydowałeś się użyć plików w chmurze (specyficznych dla Rackspace), a nie modułu CDN . Czy moduł CDN nie ma funkcji awaryjnej? Nie jestem pro w CDN.
Duncanmoo,
1
Użyłem modułu Cloud Files, ponieważ obsługuje on przesyłanie plików do Rackspace, podczas gdy moduł CDN nie. CDN wymaga zewnętrznej aplikacji o nazwie File Conveyor do wykonywania transferów. Nie miałem końca problemów z uruchomieniem File Conveyor do pracy z Cloud Files bez uszkodzenia mojej strony, więc wybrałem łatwiejsze rozwiązanie.
Kenny Wyland,
2
Być może dobrym pomysłem jest zapytanie o tę funkcję na stronie problemów modułu. Teoretycznie, jeśli chmura Rackspace ma problemy z obsługą pliku, powinna zwrócić odpowiedź „404”. Jeśli tak się stanie, moduł musi wrócić do lokalnego systemu plików. Myślę, że może to zrobić deweloper modułu.
ANDiTKO
Moduł CDN obsługuje oba tryby „File Conveyor” i „Origin Pull”. Pochodzenie źródła jest automatyczne, przenośnik plików nie. Pliki w chmurze Rackspace obsługują tylko przenośnik plików, dlatego potrzeba konkretnego modułu do automatycznego przesyłania plików.
Mike

Odpowiedzi:

6

W javascript możesz słuchać detektora zdarzeń onerror obrazu.

ustaw źródło jak zwykle. w onerror, ustaw this.src na lokalną ścieżkę obrazu:

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

możesz użyć jquery, aby zapętlić wszystkie obrazy na stronie i dodać detektor zdarzeń onerror

Neil McGuigan
źródło
Nie do końca to, czego szukałem, ale rozsądne rozwiązanie.
Kenny Wyland