Die Amazon S3-Funktion für Easy Digital Downloads (EDD) ermöglicht es Ihnen, Ihre Download-Dateien in Ihrem Amazon S3-Konto zu hosten. Es ist sicherer und zuverlässiger als die Speicherung von Dateien direkt auf Ihrem eigenen Hosting-Konto.
Diese Anleitung führt Sie durch die Erstellung eines IAM-Benutzers in AWS, die Verbindung Ihres Amazon S3-Kontos mit EDD und die Verwendung von Amazon S3, sobald alles eingerichtet ist.
Hinweis: Amazon S3 ist eine Pro-Funktion, die mindestens einen Extended Pass erfordert.
Amazon S3 aktivieren
Um die Amazon S3-Funktion in Ihrem EDD-Shop zu installieren, gehen Sie zu Downloads » Erweiterungen, suchen Sie nach Amazon S3 und klicken Sie auf Installieren.

Siehe Wie installiere ich eine Erweiterung? für weitere Informationen zur Installation und Aktivierung von Funktionen.
Sobald sie aktiv ist, finden Sie die Amazon S3-Einstellungen unter Downloads » Einstellungen » Erweiterungen » Amazon S3. Dort geben Sie Ihre AWS-Zugangsdaten ein, nachdem Sie die folgenden Schritte ausgeführt haben.
IAM-Konto erstellen
Um Easy Digital Downloads mit Ihrem Amazon S3-Konto zu verbinden, müssen Sie einen IAM-Benutzer in AWS erstellen und ihm eine Berechtigungsrichtlinie zuweisen.
Sobald dies erledigt ist, generieren Sie einen Zugriffsschlüssel und einen geheimen Schlüssel für diesen Benutzer und geben Sie beide unter Downloads » Einstellungen » Erweiterungen » Amazon S3 auf Ihrer WordPress-Website ein.
Melden Sie sich bei Ihrem Amazon S3-Konto an
Wenn Sie noch kein AWS-Konto haben, erstellen Sie eines unter Amazon S3, bevor Sie fortfahren.
Melden Sie sich bei Ihrem Amazon S3-Konto an und rufen Sie die Benutzerseite auf. Sie finden diese Seite, indem Sie auf Ihren Kontonamen in der oberen rechten Ecke klicken, dann Sicherheitszertifikate » Benutzer unter Zugriffsverwaltung auf der linken Seite der Seite.
Richten Sie Ihren IAM-Benutzer ein
Wenn Sie bereits einen IAM-Benutzer haben, den Sie verwenden möchten, wählen Sie diesen Benutzer aus.
Benutzer hinzufügen
Wenn Sie einen neuen benötigen, klicken Sie auf die Schaltfläche Benutzer erstellen und folgen Sie den Anweisungen. Sie müssen Sicherheitszertifikate abrufen und dem Benutzer eine Berechtigungsrichtlinie zuweisen.

Benutzerdetails festlegen
Geben Sie einen Benutzernamen Ihrer Wahl ein und klicken Sie auf Weiter.

Berechtigungen festlegen
Auf dem nächsten Bildschirm legen Sie die Benutzerberechtigungen fest.
- Wählen Sie Richtlinien direkt zuordnen.
- Geben Sie im Filter-Feld „S3full“ ein, um die Ergebnisse auf Amazon S3-Richtlinien einzugrenzen.
- Aktivieren Sie das Kontrollkästchen für AmazonS3FullAccess.
- Überspringen Sie den Abschnitt „Berechtigungsbegrenzung festlegen – optional“.
- Klicken Sie auf Weiter.

Möchten Sie statt vollem Kontozugriff eingeschränktere Berechtigungen? AmazonS3FullAccess gewährt Zugriff auf jeden Bucket und jede S3-Operation in Ihrem AWS-Konto. Weitere Informationen finden Sie unter Zugriff auf bestimmte Buckets einschränken unten für eine Richtlinie, die nur für den von EDD verwendeten Bucket gilt.
Überprüfen und Erstellen
Bestätigen Sie, dass Ihre Berechtigungen mit den obigen Schritten übereinstimmen, und klicken Sie dann auf Benutzer erstellen.

Zugriffsschlüssel abrufen
Sie benötigen einen IAM-Benutzer mit den oben genannten Berechtigungen. Wenn Sie bereits einen IAM-Benutzer mit AmazonS3FullAccess-Berechtigungen haben, können Sie diesen verwenden.
Navigieren Sie zum erstellten IAM-Benutzernamen, der auf Ihrer AWS Benutzerseite aufgeführt ist. Wählen Sie die Registerkarte Sicherheitszertifikate und dann Zugriffsschlüssel erstellen.

Wählen Sie Drittanbieterdienst und aktivieren Sie Bestätigen.

Wählen Sie auf dem nächsten Bildschirm Zugriffsschlüssel erstellen. Sie müssen kein Beschriftungs-Tag hinzufügen.

Speichern Sie Ihren Zugriffsschlüssel und geheimen Zugriffsschlüssel.

Hinweis: Sie können den geheimen Schlüssel für diesen Benutzer nicht erneut abrufen. Stellen Sie daher sicher, dass Sie ihn an einem sicheren Ort speichern. Wenn Sie die Anmeldeinformationen verlieren, müssen Sie einen neuen Zugriffsschlüssel erstellen.
Ihr IAM-Benutzer sollte nun die volle Berechtigung zum Zugriff auf und Hochladen von Dateien in den S3-Bucket haben. Dies gibt Ihrem EDD-Shop Zugriff auf Ihre Dateien und die Möglichkeit, sichere Download-Links für Kunden zu erstellen.
Ihr IAM-Benutzer hat nun die Berechtigung, auf den S3-Bucket zuzugreifen und Dateien hochzuladen. Dies gibt Ihrem EDD-Shop Zugriff auf Ihre Dateien und die Möglichkeit, sichere Download-Links für Kunden zu erstellen.
Fügen Sie Ihren Zugriffsschlüssel und geheimen Zugriffsschlüssel zu den Amazon S3-Einstellungen Ihres EDD-Shops unter Downloads » Einstellungen » Erweiterungen » Amazon S3 hinzu.

Wenn Sie weitere Hilfe beim Erstellen von IAM-Benutzern oder beim Zuordnen von Richtlinien benötigen, lesen Sie Amzon's Anleitung zum Erstellen von IAM-Benutzern.
Zugriff auf bestimmte Buckets beschränken
Wenn Ihr S3-Konto für andere Zwecke verwendet wird und Sie Ihren IAM-Benutzer (den Ihr EDD-Shop verwendet) auf bestimmte Buckets beschränken möchten, erstellen Sie eine benutzerdefinierte Richtlinie anstelle von AmazonS3FullAccess.
Wählen Sie Richtlinien direkt zuordnen und dann Richtlinie erstellen.

Fügen Sie die Richtliniendetails unten über den JSON-Editor hinzu. Ersetzen Sie bucket-name-here durch den Namen des Buckets (oder der Buckets), auf den Ihr EDD-Shop zugreifen soll.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::bucket-name-here",
"arn:aws:s3:::bucket-name-here/*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
Mit dieser Richtlinie sind alle Ihre Bucket-Namen weiterhin sichtbar, aber nur die in der Resource -Sektion aufgeführten Buckets sind zugänglich. Wenn EDD versucht, auf einen Bucket zuzugreifen, der nicht in der Resource -Liste aufgeführt ist, sehen Sie einen PHP-Fehler.
Amazon S3-Einrichtung
Wenn Sie dies noch nicht getan haben, gehen Sie zu Downloads » Einstellungen » Erweiterungen » Amazon S3, um Ihre Amazon S3 Zugangs- und Geheimschlüssel einzugeben.

Standard-Bucket eingeben
Auf diesem Bildschirm geben Sie auch andere Kontoinformationen wie Ihren Amazon S3 Standard-Bucket ein.

Dies ist der Standard-Bucket, in den Dateien hochgeladen werden sollen. Um neue Buckets zu erstellen oder eine Liste Ihrer aktuellen Buckets anzuzeigen, gehen Sie zu Ihrer S3-Konsole (Sie müssen sich anmelden, um darauf zugreifen zu können).
Erstellen Sie den Bucket, den Sie als Standard verwenden möchten. Sie können beim Hochladen immer noch einen anderen Bucket pro Datei auswählen.
Bucket-Berechtigungen festlegen
Schalten Sie Alle öffentlichen Zugriffe blockieren für Ihren Bucket EIN, um unbefugten Zugriff auf Dateien zu beschränken. EDD bietet Kunden temporären Zugriff auf Dateien, sodass der Bucket selbst nicht öffentlich sein muss.

Amazon S3-Endpunkt eingeben (optional)
Der Amazon S3 Endpoint ist der Endpunkt, den Ihr Bucket verwendet.
Sie können dieses Feld normalerweise leer lassen. Wenn Ihre Website Probleme beim Zugriff auf Ihren Bucket hat, versuchen Sie, dies in den Endpunkt für die Region Ihres Buckets zu ändern.
Finden Sie die Region Ihres Buckets, indem Sie sich bei Ihrem Amazon S3-Konto anmelden, auf S3 klicken und die Spalte Region neben jedem Bucket überprüfen. Suchen Sie dann den passenden Endpunkt in der Amazon S3 Region-Dokumentation.

Kopieren Sie diesen Endpunkt und fügen Sie ihn in das Feld ein, dann speichern Sie.
Das Feld Amazon S3 Endpoint funktioniert auch mit Cloudflare R2 und anderen S3-kompatiblen Speicheranbietern, nicht nur mit AWS. Wenn Sie R2 oder einen ähnlichen Dienst verwenden, geben Sie dessen Endpunkt hier genauso ein.
Gültigkeitsdauer des Links (optional)
Das letzte Einstellungsfeld auf dem EDD Amazon S3-Erweiterungsbildschirm ist Link-Gültigkeitsdauer. Dies ist die Anzahl der Minuten, die die dynamisch generierte Download-URL gültig bleibt.
Wenn ein Kunde auf einen Download-Link klickt, generiert EDD eine neue, temporäre URL für die Datei auf Amazon S3. Diese Einstellung steuert, wie lange diese URL funktioniert, bevor sie abläuft.
Wenn Sie dieses Feld leer lassen, ist der Link standardmäßig 5 Minuten lang gültig.
FES-Ordnername (optional)
Wenn Sie Frontend Submissions zusammen mit Amazon S3 verwenden, steuert diese Einstellung, wie die Dateien der Anbieter in Ihrem S3-Bucket organisiert werden. Wählen Sie, ob Dateien in Ordnern gespeichert werden, die nach dem Benutzernamen oder der Benutzer-ID jedes Anbieters benannt sind.
Weitere Informationen zur Zusammenarbeit der beiden Funktionen finden Sie unter Amazon S3 und Frontend Submissions.
Amazon S3 mit EDD verwenden
Sie laden Dateien wie bisher zu einem herunterladbaren Produkt hoch, aber diese Funktion bietet Ihnen zwei neue Registerkarten im Medien-Uploader: Upload zu Amazon S3 und Amazon S3 Bibliothek.

Hochladen auf Amazon S3 über EDD
Wenn Sie eine Datei von der Registerkarte Upload zu Amazon S3 hochladen, lädt Easy Digital Downloads sie automatisch in Ihr Amazon S3-Konto hoch.
Jede Datei, die Sie auf diese Weise hochladen, ist auch von Ihrer WordPress-Mediathek aus zugänglich, genau wie jede andere Mediendatei.

Bereits auf AWS vorhandene Dateien zu EDD hinzufügen
Jede Datei, die sich bereits auf S3 befindet, ist von Ihrer WordPress-Mediathek über den Tab Amazon S3 Library im Medien-Uploader zugänglich.

Sie können Dateien auch manuell in das Feld "Dateipfad" einfügen.

Das Feld akzeptiert einige verschiedene Formate:
- Format des Medien-Uploaders:
bucket-name/dateiname.zip - Virtuelle Host-URLs: z. B.
https://bucket-name.s3.amazonaws.com/filename.zip - Pfad-basierte URLs: z. B.
https://s3.amazonaws.com/bucket-name/filename.zip - Regionale Endpunkt-URLs: z. B.
https://bucket-name.s3.region-code.amazonaws.com/filename.zip
Wichtig ⚠️
- Kopieren Sie die URL nicht direkt aus Ihrer Amazon S3-Bibliothek und fügen Sie sie nicht in das Feld Dateipfad ein. Dies führt zu einem "Access Denied"-Fehler, wenn ein Kunde versucht, die Datei herunterzuladen. Verwenden Sie stattdessen eines der obigen Formate.
- Alle Bucket- und Ordnernamen in Ihrem Amazon S3-Konto müssen klein geschrieben und frei von Sonderzeichen sein. Siehe Amazons Dokumentation zu den Beschränkungen für Bucket-Namen.
- Nicht alle Versionen von S3 sind in jeder Region verfügbar. Diese Tabelle zeigt, welche in Ihrer Region verfügbar sind.
- Dateien, die über Amazon S3 geliefert werden, werden immer als Weiterleitung geliefert, auch wenn Ihr Shop auf "Erzwingen" eingestellt ist.
Amazon S3 mit CFM verwenden
Wenn Sie Checkout Fields Manager zusammen mit Amazon S3 verwenden, werden Dateien, die Kunden über CFM-Formulare beim Checkout hochladen, automatisch in Ihren Amazon S3-Bucket gesendet und in einem cfm/-Ordner gespeichert. Sie müssen nichts extra konfigurieren.
Sobald Ihre Amazon S3-Anmeldedaten unter dem Tab Erweiterungen » Amazon S3 eingerichtet sind, geschieht dies automatisch für jedes Dateiupload-Feld in einem Checkout Fields Manager-Formular.
Dateien zum Download erzwingen
Manchmal versucht Ihr Browser, eine Datei anzuzeigen oder abzuspielen, anstatt sie herunterzuladen, z. B. indem er Musik oder Videos direkt im Browser öffnet. Dies können Sie normalerweise mit Einstellungen auf Ihrem Webserver beheben, aber Dateien, die auf Amazon S3 gespeichert sind, ignorieren die Einstellungen Ihres Webservers vollständig.
Stattdessen müssen Sie dies direkt in S3 konfigurieren.
Hinweis: Diese Einstellung gilt für einzelne Dateien oder Ordner, nicht für den gesamten Bucket.
Dateieigenschaften öffnen
Suchen Sie in Ihrem S3-Bucket die Datei, mit der Sie arbeiten möchten, wählen Sie sie aus und klicken Sie auf Aktionen » Metadaten ändern.
Klicken Sie auf Metadaten hinzufügen, setzen Sie den Typ auf Systemdefiniert, den Schlüssel auf Content-Disposition und den Wert auf attachment. Klicken Sie auf Änderungen speichern.

Dies erzwingt den Download der Datei, anstatt sie im Browser abzuspielen oder anzuzeigen.
Fehlerbehebung und FAQs
Dateien werden im Browser geöffnet, anstatt heruntergeladen zu werden
Siehe Dateien zum Download erzwingen oben.
Können Kunden die tatsächliche Amazon S3-URL sehen und die Datei direkt herunterladen?
Nein. Kunden sehen eine URL, die auf Ihren eigenen Shop verweist. Easy Digital Downloads übersetzt den Speicherort im Hintergrund, sodass der Download funktioniert, ohne die ursprüngliche Amazon S3-Quell-URL preiszugeben.
Fehler: SSL-Zertifikatsproblem: Lokales Ausstellerzertifikat kann nicht abgerufen werden
Dies bedeutet, dass das SSL-Zertifikat auf dem Server Ihrer Website ungültig ist oder falsch installiert wurde. Wenden Sie sich an Ihr Hosting-Unternehmen und bitten Sie es, die ordnungsgemäße Installation des Zertifikats zu überprüfen.
Fehler: Zugriff verweigert
Dies bedeutet, dass die von Ihnen verwendeten Access Key ID und der Secret Key nicht über die erforderlichen Berechtigungen für den Zugriff auf Ihre S3-Buckets und -Ressourcen verfügen.
Um dies zu beheben, hängen Sie eine neue Berechtigungsrichtlinie an den IAM-Benutzer an. Die korrekten Berechtigungen finden Sie unter Erstellen eines IAM-Kontos oben.
Sie können diesen Fehler auch sehen, wenn Sie eine URL direkt von Amazon S3 kopiert und in das Feld "Datei-URL" Ihres Downloads eingefügt haben.
Fehler: RequestTimeTooSkewed
Dies geschieht, wenn die Zeitzoneneinstellungen Ihres Webservers falsch konfiguriert sind. Wenden Sie sich an Ihr Hosting-Unternehmen und bitten Sie es, die Zeitzoneneinstellungen neu zu konfigurieren.
Fehler: SignatureDoesNotMatch
Wenn Sie diesen Fehler zusammen mit "Die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen bereitgestellten Signatur überein" sehen, enthält Ihr Bucket-Name wahrscheinlich Großbuchstaben oder Leerzeichen. Benennen Sie Ihren Bucket um oder erstellen Sie einen neuen, der nur Kleinbuchstaben und keine Leerzeichen enthält.
Fehler: NoSuchKey Der angegebene Schlüssel existiert nicht
Dies geschieht, wenn es ein Problem mit der Benennung der Datei oder des Buckets gibt. Entfernen Sie alle Satzzeichen und Sonderzeichen aus dem Namen.
Ändern Sie zum Beispiel test-file-one.mp4.zip in testfileone.zip .
Andere Fehler oder Probleme beim Hochladen von Dateien nach Amazon S3
Wenn Sie Probleme beim Hochladen von Dateien nach Amazon S3 oder beim Zugriff auf vorhandene Dateien haben, versuchen Sie diese Schritte:
- Überprüfen Sie Ihre Amazon S3-Endpunkt-Einstellung unter Downloads » Einstellungen » Erweiterungen » Amazon S3. Stellen Sie sicher, dass sie korrekt eingerichtet ist, einschließlich der richtigen Region. Siehe Amazon S3 Endpoint oben.
- Stellen Sie sicher, dass Ihr Dateiname die 1.024-Zeichen-Grenze nicht überschreitet. Siehe Amazons Dokumentation zur korrekten Formatierung von Dateinamen.
- Wenn Sie kürzlich zu einem neuen Amazon S3-Konto gewechselt haben und keine Dateien in Ihren Bucket hochladen können, ist dies normalerweise vorübergehend und löst sich innerhalb weniger Stunden von selbst. Weitere Informationen finden Sie in der Dokumentation von Amazon .
- Immer noch festgefahren? Kontaktieren Sie den Support mit der genauen Fehlermeldung oder dem Verhalten, das Sie sehen.
Softwarelizenzaktualisierungen schlagen fehl mit "Download fehlgeschlagen. cURL-Fehler 8: Ungültiger Content-Length: Wert"
Dies bedeutet normalerweise, dass die Amazon S3-Funktion das Erzwingen von Download-Umleitungen nicht aktiviert hat. Versuchen Sie, die Download-Methode auf „Erzwingen“ zu setzen.
Kunde sieht „Update fehlgeschlagen: Download fehlgeschlagen. Interner Serverfehler“, wenn ein Plugin aktualisiert wird
Stellen Sie sicher, dass die für automatische Updates verwendete Quelldatei in den Lizenzierungseinstellungen des Downloads ausgewählt ist.
Sie werden diesen PHP-Fatal-Fehler wahrscheinlich in der PHP-Fehlerprotokolldatei Ihres Shops sehen:
PHP Fatal error: Uncaught InvalidArgumentException: Found 2 errors while validating the input provided for the GetObject operation: [Key] is missing and is a required parameter [Key] expected string length to be >= 1, but found string length of 0 in /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65
