Konfigurieren des AWS S3-Buckets für Remote-Speicher
Der Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherdienst, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Der AWS S3-Dienst verwendet Behälter oder Container für die Datenspeicherung. Für diese Konfiguration müssen Sie einen privaten Behälter erstellen. Informationen zu Adobe Commerce in der Cloud-Infrastruktur finden Sie unter Konfigurieren des Remote-Speichers für Commerce in der Cloud-Infrastruktur.
So aktivieren Sie Remote-Speicher mit dem AWS S3-Adapter:
-
Melden Sie sich bei Ihrem Amazon S3-Dashboard an und erstellen Sie einen Bucket privat .
-
Richten Sie die Rollen AWS IAM ein. Alternativ können Sie Zugriff- und geheime Schlüssel generieren.
-
Deaktivieren Sie den standardmäßigen Datenbankspeicher.
code language-bash bin/magento config:set system/media_storage_configuration/media_database 0
-
Konfigurieren Sie Commerce für die Verwendung des privaten Buckets. Eine vollständige Liste der Parameter finden Sie unter Remote-Speicheroptionen .
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
-
Mediendateien mit Remote-Speicher synchronisieren.
code language-bash bin/magento remote-storage:sync
Nginx konfigurieren
Nginx benötigt eine zusätzliche Konfiguration, um die Authentifizierung mit der Anweisung proxy_pass
durchzuführen. Fügen Sie der Datei nginx.conf
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 Zugriff- und geheime Schlüssel anstelle der Rollen AWS IAM verwenden, müssen Sie das ngx_aws_auth
Nginx-Modul einschließen.
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 identisch mit denen für die Verwendung des lokalen Speichers.
Dateivorgänge
Es wird dringend empfohlen, die Commerce-Dateiadaptermethoden unabhängig vom Dateispeichertyp in der Code- oder Erweiterungsentwicklung zu verwenden. Verwenden Sie bei Verwendung von S3 zum Speichern keine nativen I/O-Vorgänge für PHP-Dateien wie copy
, rename
oder file_put_contents
, da sich S3-Dateien nicht im Dateisystem befinden. Codebeispiele finden Sie unter DriverInterface.php .