AWS S3-Bucket für Remote-Speicher konfigurieren
Erstellt für:
- Experte
- Admin
- Entwickler
Der Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicher-Service, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Der AWS S3-Service verwendet Buckets (oder Container) für die Datenspeicherung. Für diese Konfiguration müssen Sie einen privaten“ erstellen. Informationen zu Adobe Commerce in Cloud-Infrastrukturen finden Sie unter Konfigurieren von Remote-Speicher für Commerce in Cloud-Infrastrukturen.
So aktivieren Sie die Remote-Speicherung mit dem AWS S3-Adapter:
-
Melden Sie sich bei Ihrem Amazon S3-Dashboard an und erstellen Sie einen privaten Bucket.
-
Richten Sie AWS IAM-Rollen ein. Alternativ können Sie Zugriffs- und Geheimschlüssel generieren.
-
Deaktivieren Sie den standardmäßigen Datenbankspeicher.
bin/magento config:set system/media_storage_configuration/media_database 0
-
Konfigurieren Sie Commerce für die Verwendung des privaten Buckets. Siehe Remote-Speicheroptionen für eine vollständige Liste der Parameter.
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
-
Synchronisieren von Mediendateien mit dem Remote-Speicher.
bin/magento remote-storage:sync
Konfigurieren von nginx
Nginx erfordert eine zusätzliche Konfiguration, um die Authentifizierung mit der proxy_pass
-Direktive durchzuführen. Fügen Sie der nginx.conf
-Datei die folgenden Proxy-Informationen hinzu:
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";
}
Authentifizierung
Wenn Sie anstelle von AWS IAM-Rollen Zugriffs- und Geheimschlüssel verwenden, müssen Sie das ngx_aws_auth
Nginx-Modul.
Berechtigungen
Die S3-Integration beruht auf der Möglichkeit, zwischengespeicherte Bilder im lokalen Dateisystem zu generieren und zu speichern. Daher sind die Ordnerberechtigungen für pub/media
und ähnliche Ordner für S3 und für die Verwendung des lokalen Speichers identisch.
Dateifunktionen
Es wird dringend empfohlen, bei der Codierung oder Erweiterungsentwicklung Commerce Dateiadaptermethoden zu verwenden, unabhängig vom Dateispeichertyp. Wenn Sie S3 für die Speicherung verwenden, verwenden Sie keine nativen PHP-Datei-I/O-Vorgänge wie copy
, rename
oder file_put_contents
, da sich S3-Dateien nicht im Dateisystem befinden. CodeBeispiele finden Sie unterDriverInterface.php).