On m'a demandé comment enregistrer tous les actifs multimédias de Magento dans Amazon S3. J'ai pensé à utiliser un PHP Stream Wrapper comme celui-ci: https://github.com/punkave/aS3StreamWrapper et je viens de définir le dossier multimédia sur s3: \ mybucket \ mediaFolder
Quelqu'un a-t-il de l'expérience avec cela?
Ou mieux utiliser quelque chose comme ça: https://github.com/sstoiana/magento-s3 Mais cette extension ne semble pas bonne. D'autres recommandations?
amazon-web-services
media
Fabian Blechschmidt
la source
la source
Réponses:
il semble que ces gars-là trouvent une solution: ( http://thinkglobal.co/resources/moving-the-magento-media-directory-to-s3/ )
Il existe 2 approches possibles, l'une étant de demander à Magento de pousser tous les actifs multimédias vers S3 au fur et à mesure qu'ils sont créés et l'autre de simplement monter le répertoire multimédia dans un compartiment S3 et de laisser Magento penser qu'il écrit sur le disque local. Nous avons choisi ce dernier.
Nous avons fini par utiliser un outil appelé s3fs, qui utilise une technologie plus large appelée fusible. Avec une configuration assez simple (décrite ci-dessous), vous pouvez faire fonctionner s3fs. Faites attention à ne pas coder en dur les noms de compartiment S3 ou les informations d'identification d'API si vous utilisez AWS ou un autre fournisseur PAAS.
Assurez-vous de remplacer les variables suivantes par des valeurs pour votre configuration spécifique:
Voici la configuration:
la source
L'extension CDN de OnePica est très pratique pour cette fonctionnalité et prend en charge plus que S3. Citation: "Actuellement, l'extension s'intègre avec Amazon S3, Coral CDN, Mosso / Rackspace Cloud Files et tout CDN, serveur ou service prenant en charge FTP, FTPS ou SFTP."
la source
L'extension CDN de OnePica n'est pas la solution, elle ne fonctionne que pour les images de produits, sans oublier que vous devez définir le TTL correct pour sa propre durée de vie en cache qui expirera beaucoup plus tôt que Magento par défaut. Toute votre image cms wysiwyg sera dans le dossier multimédia mais n'utilisera pas S3, vous finirez par télécharger toute votre image multimédia sur S3.
Utiliser cloudfront sera bon, mais vous aurez toujours besoin d'un NFS pour partager votre dossier multimédia entre tous vos nœuds frontaux et nœuds principaux. Ou vous devez créer votre propre interface pour enregistrer le fichier sur S3, et vous devez également gérer les erreurs (pensez à quelqu'un de télécharger un fichier extrêmement volumineux si votre code peut gérer cela avant l'expiration de l'API S3)
Sinon, enregistrez simplement le stockage multimédia dans votre RDS supplémentaire (base de données) et l'image de cache de redimensionnement individuelle sera toujours enregistrée dans le dossier multimédia local de votre serveur d'applications, mais c'est correct car cloudfront les mettra déjà en cache.
la source
Je préfère avoir un nœud "admin" distinct (admin.example.com) et y conserver les dossiers multimédias. De cette façon, vous vous épargneriez avec des coûts NFS ainsi qu'avec des problèmes de synchronisation, etc. tout CDN (j'utilise cloudfront) pourrait alors être connecté aux dossiers multimédias du nœud d'administration et être configuré pour tous les magasins.
Les autres avantages de l'utilisation du nœud d'administration sont que vous pouvez déplacer tous les crons (réindexation et autres crons), les tâches planifiées (importations de produits, inventaire et synchronisation des commandes, etc.) sur le nœud d'administration et enregistrer le traitement de l'unité centrale des nœuds frontaux.
Edit: Comme la dernière réponse n'a pas réellement répondu à la question d'OP. Magento Media Assets dans Amazon S3? Eh bien, je crois que Magento a déjà tellement de frais de traitement, que je pense que ce serait une bonne idée de l'empêcher de synchroniser / diffuser en s3, et d'utiliser à la place un dossier multimédia local.
la source
Eh bien, maintenant que quelques années se sont écoulées, je pense qu'il est important de noter qu'il existe plusieurs plugins disponibles qui déplaceront et serviront les actifs de S3 / CDN.
Les recherches Google présentent de nombreuses options.
En voici un sur GitHub:
https://github.com/magefm/cdn
En voici un sur le marché Connect de Magento:
http://www.magentocommerce.com/magento-connect/aws-s3-cdn-for-product-images.html
Je n'ai pas encore essayé ces extensions particulières mais le sera pour un prochain projet. Il y en a d'autres aussi.
Je serais en désaccord avec @Sonassi, l'utilisation d'un stockage séparé pour permettre la configuration de serveur la moins chère toujours avec de bonnes performances est vraiment considérée comme la meilleure pratique aujourd'hui. Par exemple, utiliser simplement S3 pour déplacer tout le contenu statique de votre serveur Web permet au serveur d'utiliser beaucoup moins de bande passante et d'autoriser plus d'utilisateurs simultanés et moins de puissance globale du serveur. Et, si vous êtes dans un seul centre de données comme la plupart des gens ces jours-ci, et dites que c'est à Dallas, alors il ne fait aucun doute que les gens en Europe occidentale seront servis beaucoup plus rapidement avec un CDN mondial comme Cloudfront. Ainsi, l'utilisation d'un stockage séparé de votre serveur Web pour réduire l'utilisation de la bande passante vous permet d'utiliser un seul serveur lorsque vous en auriez besoin plus tôt sans cette approche, et l'utilisation de CDN augmentera considérablement les temps de chargement globaux.
la source
Trouvé une autre extension construite par arkadedigital https://github.com/arkadedigital/magento-s3
la source