Konfigurieren des AWS S3-Buckets für Remote-Speicher

Die 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 eine privat Eimer. Informationen zu Adobe Commerce zur Cloud-Infrastruktur finden Sie unter Remote-Speicher für Commerce in Cloud-Infrastruktur konfigurieren.

WARNING
Adobe rät dringend von der Verwendung öffentlicher Buckets ab, da dies ein ernsthaftes Sicherheitsrisiko darstellt.

So aktivieren Sie Remote-Speicher mit dem AWS S3-Adapter:

  1. Melden Sie sich bei Ihrem Amazon S3-Dashboard an und erstellen Sie eine privat Eimer.

  2. Einrichten AWS IAM Rollen. Alternativ können Sie Zugriff- und geheime Schlüssel generieren.

  3. Deaktivieren Sie den standardmäßigen Datenbankspeicher.

    code language-bash
    bin/magento config:set system/media_storage_configuration/media_database 0
    
  4. Konfigurieren Sie Commerce für die Verwendung des privaten Buckets. Siehe Remote-Speicheroptionen für eine vollständige Liste der Parameter.

    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
    
  5. Mediendateien mit Remote-Speicher synchronisieren.

    code language-bash
    bin/magento remote-storage:sync
    

Nginx konfigurieren

Nginx erfordert eine zusätzliche Konfiguration, um die Authentifizierung mit dem proxy_pass Richtlinie. Fügen Sie die folgenden Proxy-Informationen zum nginx.conf Datei:

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 von AWS IAM -Rollen, müssen Sie die 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 Ordnerberechtigungen für pub/media und ähnliche Ordner sind für S3 identisch mit denen bei der Verwendung des lokalen Speichers.

Dateivorgänge

Es wird dringend empfohlen, Commerce Dateiadaptermethoden in Ihrer Kodierung oder Erweiterungsentwicklung, unabhängig vom Dateityp. Verwenden Sie bei Verwendung von S3 zum Speichern keine nativen I/O-Vorgänge für PHP-Dateien, z. B. copy, renameoder file_put_contents, da sich S3-Dateien nicht im Dateisystem befinden. Siehe DriverInterface.php für Codebeispiele.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c