Configuration du compartiment AWS S3 pour le stockage à distance
Le service de stockage simple Amazon (Amazon S3) est un service de stockage d’objets qui offre une évolutivité, une disponibilité des données, une sécurité et des performances de pointe. Le service AWS S3 utilise des compartiments, ou conteneurs, pour le stockage des données. Cette configuration nécessite la création d'un compartiment private. Pour Adobe Commerce sur l’infrastructure cloud, voir Configuration de l’espace de stockage distant pour Commerce sur l’infrastructure cloud.
Pour activer le stockage à distance avec l’adaptateur AWS S3 :
-
Connectez-vous à votre tableau de bord Amazon S3 et créez un compartiment private.
-
Configurez les rôles AWS IAM. Vous pouvez également générer des clés d’accès et secrètes.
-
Désactivez le stockage de la base par défaut.
code language-bash bin/magento config:set system/media_storage_configuration/media_database 0
-
Configurez Commerce pour utiliser le compartiment privé. Voir Options de stockage à distance pour obtenir la liste complète des paramètres.
code language-bash bin/magento setup:config:set --remote-storage-driver="aws-s3" --remote-storage-bucket="<bucket-name>" --remote-storage-region="<region-name>" --remote-storage-prefix="<optional-prefix>" --remote-storage-key=<optional-access-key> --remote-storage-secret=<optional-secret-key> -n
-
Synchronisez les fichiers multimédias avec l’enregistrement à distance.
code language-bash bin/magento remote-storage:sync
Configuration de Nginx
Nginx nécessite une configuration supplémentaire pour effectuer l'authentification avec la directive proxy_pass
. Ajoutez les informations de proxy suivantes au fichier nginx.conf
:
nginx.conf
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
# Proxying to AWS S3 storage.
resolver 8.8.8.8;
set $bucket "<s3-bucket-name>";
proxy_pass https://s3.amazonaws.com/$bucket$uri;
proxy_pass_request_body off;
proxy_pass_request_headers off;
proxy_intercept_errors on;
proxy_hide_header "x-amz-id-2";
proxy_hide_header "x-amz-request-id";
proxy_hide_header "x-amz-storage-class";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Set-Cookie";
}
Authentification
Si vous utilisez des clés d’accès et secrètes au lieu des rôles AWS IAM, vous devez inclure le module ngx_aws_auth
Nginx.
Autorisations
L’intégration S3 repose sur la possibilité de générer et de stocker des images mises en cache sur le système de fichiers local. Par conséquent, les autorisations de dossier pour pub/media
et les répertoires similaires sont identiques pour S3 à l’utilisation du stockage local.
Opérations de fichier
Il est vivement recommandé d’utiliser les méthodes d’adaptateur de fichier Commerce dans votre développement de codage ou d’extension, quel que soit le type de stockage de fichier. Lors de l’utilisation de S3 pour le stockage, n’utilisez pas d’opérations d’E/S de fichier PHP natif, telles que copy
, rename
ou file_put_contents
, car les fichiers S3 ne se trouvent pas dans le système de fichiers. Voir DriverInterface.php pour consulter des exemples de code.