Direkt zum Inhalt

Wie kann ich den Fehler „404 NoSuchKey“ von Amazon S3 beheben?

Lesedauer: 3 Minute
0

Wenn Benutzer versuchen, auf Objekte in meinem Amazon Simple Storage Service (Amazon S3)-Bucket zuzugreifen, erhalten sie den Fehler „404 NoSuchKey“.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Amazon S3 gibt möglicherweise 404-Fehler zurück, wenn das angeforderte Objekt im Bucket fehlt. Bevor Benutzer GET- oder HEAD-Anfragen für ein Objekt stellen, überprüfe, ob das Objekt in deinem S3-Verzeichnis oder Allzweck-Bucket verfügbar ist.

Hinweis: Die in diesem Artikel beschriebene Lösung gilt nur für Amazon S3-Verzeichnis-Buckets und Allzweck-Buckets.

Um zu überprüfen, ob ein Objekt in einem Bucket verfügbar ist, überprüfe den Inhalt des Buckets in der Amazon S3-Konsole. Oder du kannst das AWS Command Line Interface (AWS CLI) verwenden, um den Befehl head-object auszuführen:

aws s3api head-object --bucket awsexamplebucket --key object.jpg

Hinweis: Ersetze awsexamplebucket durch den Namen deines Buckets und object.jpg durch den Namen deines Objekts.

Amazon S3 bietet eine hohe Lesen-nach-Schreiben-Konsistenz für alle Anwendungen. Nach dem Schreiben, Überschreiben oder Löschen eines Objekts erhält jede Lese-Anfrage sofort die neueste Version des Objekts. Amazon S3 bietet auch eine hohe Konsistenz für Listenoperationen. Nach einem Schreibvorgang kannst du die Objekte in einem Bucket auflisten. Weitere Informationen zur Amazon S3-Konsistenz findest du unter Starke Amazon-S3-Konsistenz.

Wenn das von dir angeforderte Objekt im S3-Bucket verfügbar ist und du erneut den Fehler „404 NoSuchKey“ erhältst, überprüfe Folgendes:

  • Vergewissere dich, dass die Anforderung genau mit dem Objektnamen übereinstimmt. Bei Anforderungen für S3-Objekte wird zwischen Groß- und Kleinschreibung unterschieden. Wenn ein Objekt beispielsweise myimage.jpg heißt, aber Myimage.jpg angefordert wird, erhält der Anforderer einen „404 NoSuchKey“-Fehler.

  • Vergewissere dich, dass der angeforderte Pfad mit dem Pfad zum Objekt übereinstimmt. Andernfalls erhält der Anforderer einen „404 NoSuchKey“-Fehler.

  • Wenn der Pfad zum Objekt Leerzeichen enthält, überprüfe, ob die Anforderung die richtige Syntax verwendet, um den Pfad zu erkennen. Wenn du beispielsweise AWS CLI verwendest, um ein Objekt auf die Windows-Maschine herunterzuladen, musst du den Objektpfad in Anführungszeichen setzen. Der Objektpfad muss dem folgenden Beispiel ähneln:

    aws s3 cp "s3://awsexamplebucket/Backup Copy Job 4/3T000000.vbk"

    Hinweis: Ersetze den Objektpfad durch deinen Objektpfad.

  • Überprüfe den Objektnamen auf Sonderzeichen oder URL-kodierte Zeichen, die schwer zu erkennen sind, wie z. B. Wagenrückläufe (\r) oder neue Zeilen (\n). Beispielsweise wird der Objektname test mit einem Wagenrücklauf am Ende in der Amazon S3-Konsole als test%0A angezeigt. Um Objektnamen auf Sonderzeichen zu überprüfen, führe den Befehl list-objects-v2 mit dem Parameter --output json aus. Die JSON-Ausgabe macht Zeichen als Wagenrückläufe (\r) sichtbar. Wenn ein Objektname ein Sonderzeichen enthält, das nicht sichtbar ist, sollte dieses Zeichen aus dem Objektnamen entfernt werden. Versuche erneut, auf das Objekt zuzugreifen.

  • (Optional) Du kannst die Protokollierung des Serverzugriffs aktivieren, um die Anforderungsdatensätze detaillierter auf Probleme zu überprüfen, die zu einem „404 NoSuchKey“-Fehler führen könnten.

Hinweis: Wenn ein Objekt in deinem Allzweck-Bucket fehlt und der Anforderer keinen s3:ListBucket-Zugriff hat, erhält der Anforderer die Fehlermeldung „403 Access Denied“. Wenn du den Fehler „403 Access Denied“ erhältst, löst du das Problem im Zusammenhang mit dem fehlenden Objekt.

Ähnliche Informationen

Behebung von Fehlern „Access Denied (403 Forbidden)“ in Amazon S3