Zapytano mnie, jak zapisać wszystkie zasoby medialne magento w Amazon S3. Myślałem o użyciu PHP Wrapper takiego jak ten: https://github.com/punkave/aS3StreamWrapper i po prostu ustawiłem folder multimediów na s3: \ mybucket \ mediaFolder
Czy ktoś ma z tym doświadczenie?
Lub lepiej użyj czegoś takiego: https://github.com/sstoiana/magento-s3 Ale to rozszerzenie nie wygląda dobrze. Jakieś inne rekomendacje?
amazon-web-services
media
Fabian Blechschmidt
źródło
źródło
Odpowiedzi:
wygląda na to, że ci faceci znajdują rozwiązanie: ( http://thinkglobal.co/resources/moving-the-magento-media-directory-to-s3/ )
Istnieją dwa możliwe podejścia, jeden polega na tym, że Magento wypycha wszystkie zasoby multimedialne do S3 podczas ich tworzenia, a drugi polega na zamontowaniu katalogu multimediów do segmentu S3 i pozwoleniu Magento myśleć, że zapisuje na dysku lokalnym. Wybraliśmy ten drugi.
Skończyło się na użyciu narzędzia o nazwie s3fs, które wykorzystuje szerszą technologię zwaną bezpiecznikiem. Dzięki dość prostej konfiguracji (opisanej poniżej) możesz uruchomić s3fs. Uważaj, aby nie zakodować na stałe nazw segmentów S3 ani poświadczeń dostępu do interfejsu API, jeśli korzystasz z AWS lub innego dostawcy PAAS.
Upewnij się, że zastąpiłeś następujące zmienne wartościami dla twojej konkretnej konfiguracji:
Oto konfiguracja:
źródło
Rozszerzenie CDN w OnePica jest bardzo przydatne od tej funkcjonalności i obsługuje więcej niż tylko S3. Cytat: „Obecnie rozszerzenie integruje się z Amazon S3, Coral CDN, Mosso / Rackspace Cloud Files oraz dowolnym CDN, serwerem lub usługą obsługującą FTP, FTPS lub SFTP”.
źródło
Rozszerzenie CDN w OnePica nie jest rozwiązaniem, działa tylko na zdjęciach produktów, nie wspominając o tym, że musisz ustawić poprawne TTL dla własnego czasu życia pamięci podręcznej, który upłynie znacznie wcześniej niż domyślny Magento. Wszystkie twoje cms wysiwyg obraz będzie w folderze multimediów, ale nie przy użyciu S3, skończysz przesyłanie całego obrazu multimedialnego do S3.
Korzystanie z usługi Cloudfront będzie dobre, ale nadal będziesz potrzebować systemu plików NFS do udostępniania folderu multimediów we wszystkich węzłach frontonu i węzłach zaplecza. Lub musisz zbudować własny interfejs, aby zapisać plik na S3, a także musisz obsługiwać błędy (pomyśl o tym, że ktoś prześle wyjątkowo duży plik, czy Twój kod może to obsłużyć przed upływem limitu czasu interfejsu API S3)
Innym sposobem jest po prostu zapisanie miejsca na nośnik w dodatkowej RDS (bazie danych), a indywidualny obraz bufora zmiany rozmiaru nadal będzie zapisywany w lokalnym folderze multimediów na serwerze aplikacji, ale jest to w porządku, ponieważ Cloudfront już je buforuje.
źródło
Wolę mieć osobny węzeł „admin” (admin.example.com) i przechowywać tam foldery multimediów. W ten sposób zaoszczędzisz na kosztach NFS, a także na problemach z synchronizacją itp. Dowolny CDN (używam Cloudfront) może być następnie połączony z folderami mediów węzła administracyjnego i skonfigurowany dla wszystkich sklepów.
Innymi zaletami korzystania z węzła administracyjnego jest to, że możesz przenieść wszystkie crony (reindeksowanie i inne crony), zaplanowane zadania (import produktów, inwentaryzację i synchronizację zamówień itp.) W węźle administratora i zapisać przetwarzanie procesora w węzłach frontonu.
Edycja: Ponieważ ostatnia odpowiedź nie dotyczyła pytania OP. Magento Media Assets w Amazon S3? Cóż, uważam, że Magento ma już tak wiele narzutów na przetwarzanie, że myślę, że dobrym pomysłem byłoby powstrzymanie go przed synchronizacją / streamingiem s3 i zamiast tego użyć lokalnego folderu multimediów.
źródło
Cóż, teraz, gdy minęło kilka lat, myślę, że należy zauważyć, że dostępnych jest wiele wtyczek, które przenoszą i obsługują zasoby z S3 / CDN.
Wyszukiwania Google zawierają wiele opcji.
Oto jeden na GitHub:
https://github.com/magefm/cdn
Oto jeden z rynku Magento Connect:
http://www.magentocommerce.com/magento-connect/aws-s3-cdn-for-product-images.html
Nie próbowałem jeszcze tych konkretnych rozszerzeń, ale będę na nadchodzący projekt. Są też inni.
Musiałbym się nie zgodzić z @Sonassi, używanie oddzielnej pamięci masowej w celu umożliwienia najtańszej konfiguracji serwera z dobrą wydajnością jest dziś uważane za najlepszą praktykę. Na przykład po prostu użyj S3, aby przenieść całą statyczną zawartość z serwera WWW, co pomaga serwerowi zużywać znacznie mniejszą przepustowość i pozwala na jednoczesną pracę użytkowników i mniejsze zapotrzebowanie na ogólną moc serwera. A jeśli obecnie znajdujesz się w jednym centrum danych, jak większość ludzi i powiesz, że znajduje się w Dallas, nie ma wątpliwości, że ludzie w Europie Zachodniej będą obsługiwani znacznie szybciej dzięki Global CDN, jak Cloudfront. Tak więc użycie pamięci niezależnej od serwera WWW w celu zmniejszenia wykorzystania przepustowości pozwala na użycie tylko 1 serwera, gdy będziesz potrzebować więcej bez tego podejścia, a użycie CDN znacznie wydłuży globalne czasy ładowania.
źródło
Znaleziono inne rozszerzenie zbudowane przez arkadedigital https://github.com/arkadedigital/magento-s3
źródło