Me preguntaron cómo guardar todos los recursos multimedia de magento en Amazon S3. Pensé en usar un PHP Stream Wrapper como este: https://github.com/punkave/aS3StreamWrapper y simplemente configuré la carpeta de medios en s3: \ mybucket \ mediaFolder
¿Alguien tiene experiencia con esto?
O mejor use algo como esto: https://github.com/sstoiana/magento-s3 Pero esta extensión no se ve bien. ¿Alguna otra recomendación?
amazon-web-services
media
Fabian Blechschmidt
fuente
fuente
Respuestas:
parece que estos tipos encuentran una solución: ( http://thinkglobal.co/resources/moving-the-magento-media-directory-to-s3/ )
Hay 2 enfoques posibles, uno para que Magento transfiera todos los activos de medios a S3 a medida que se crean y el otro para simplemente montar el directorio de medios en un depósito de S3 y dejar que Magento piense que está escribiendo en el disco local. Elegimos este último.
Terminamos usando una herramienta llamada s3fs, que usa una tecnología más amplia llamada fusible. Con una configuración bastante sencilla (descrita a continuación), puede obtener s3fs en funcionamiento. Tenga cuidado de no codificar los nombres del depósito S3 o las credenciales de acceso a la API si está utilizando AWS u otro proveedor de PAAS.
Asegúrese de reemplazar las siguientes variables con valores para su configuración específica:
Aquí está la configuración:
fuente
La extensión CDN de OnePica es muy práctica para esta funcionalidad y admite más que solo S3. Cita: "Actualmente, la extensión se integra con Amazon S3, Coral CDN, Mosso / Rackspace Cloud Files y cualquier CDN, servidor o servicio que admita FTP, FTPS o SFTP".
fuente
La extensión CDN de OnePica no es la solución, solo funciona para imágenes de productos, sin mencionar que necesita configurar el TTL correcto para su propio tiempo de vida de caché, que expirará mucho antes que Magento predeterminado. Toda su imagen de cms wysiwyg estará en la carpeta de medios pero sin usar S3, terminará cargando toda su imagen de medios en S3.
Usar Cloudfront será bueno, pero aún necesitará un NFS para compartir su carpeta de medios en todos sus nodos frontend y backend. O necesita crear su propia interfaz para guardar el archivo en S3, y también debe manejar los errores (piense en alguien que cargue un archivo extremadamente grande si su código puede manejar eso antes del tiempo de espera de la API de S3)
De otra manera, solo guarde el almacenamiento de medios en su RDS (base de datos) adicional y la imagen de caché de cambio de tamaño individual aún se guardará en la carpeta de medios local del servidor de aplicaciones, pero está bien ya que cloudfront ya los almacenará en caché.
fuente
Prefiero tener un nodo "admin" separado (admin.example.com) y mantener carpetas de medios allí. De esta forma, se ahorraría con el costo de NFS, así como problemas con la sincronización, etc. cualquier CDN (uso Cloudfront) podría conectarse con las carpetas de medios del nodo de administración y configurarse para todas las tiendas.
Otros beneficios de usar el nodo de administración es que puede mover todos los crons (reindexación y otros crons), tareas programadas (importación de productos, inventario y sincronización de pedidos, etc.) en el nodo de administración y guardar el procesamiento de la CPU de los nodos frontend.
Editar: como la última respuesta en realidad no abordó la pregunta de OP. Magento Media Assets en Amazon S3? Bueno, creo que Magento ya tiene tanta sobrecarga de procesamiento, que creo que sería una buena idea evitar que se sincronice / transmita s3, y en su lugar use la carpeta de medios local.
fuente
Bueno, ahora que han pasado un par de años, creo que es importante tener en cuenta que hay varios complementos disponibles que moverán y servirán los activos de S3 / CDN.
Las búsquedas de Google muestran muchas opciones.
Aquí hay uno en GitHub:
https://github.com/magefm/cdn
Aquí hay uno en el mercado Connect de Magento:
http://www.magentocommerce.com/magento-connect/aws-s3-cdn-for-product-images.html
Todavía no he probado estas extensiones en particular, pero será para un próximo proyecto. También hay otros por ahí.
Tendría que estar en desacuerdo con @Sonassi, el uso de almacenamiento separado para permitir que la configuración de servidor más barata aún con un buen rendimiento se considere realmente la mejor práctica hoy en día. Por ejemplo, simplemente use S3 para mover todo el contenido estático de su servidor web, lo que ayuda a que el servidor use mucho menos ancho de banda y permita que se necesiten más usuarios concurrentes y menos energía general del servidor. Y, si está en un solo centro de datos como la mayoría de las personas en estos días, y dice que está en Dallas, entonces no hay duda de que las personas en Europa occidental recibirán un servicio mucho más rápido con un CDN global como Cloudfront. Por lo tanto, el uso de almacenamiento separado de su servidor web para reducir el uso de ancho de banda le permite usar solo 1 servidor cuando lo necesite más pronto sin este enfoque, y el uso de CDN aumentará en gran medida los tiempos de carga global.
fuente
Encontré otra extensión construida por arkadedigital https://github.com/arkadedigital/magento-s3
fuente