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?


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


Nie do końca to, czego szukałem, ale rozsądne rozwiązanie.
— Kenny Wyland
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.