Amazon S3 Ausnahme: "Der angegebene Schlüssel nicht vorhanden ist"
Ich bin mit dem AmazonS3Client in einer Android-app über eine getObject-Anfrage zum herunterladen ein Bild von meinen Amazon S3-bucket.
Aktuell ist, erhalte ich diese exception:
com.amazonaws.services.s3.model.AmazonS3Exception:
The specified key does not exist.
(Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey;
Obwohl ich in der Lage bin zu sehen, dass das Objekt mit dem angegebenen Schlüssel in meine S3-bucket.
- Ich denke, dieser Fehler tritt normalerweise auf, wenn das Objekt/die Datei nicht vorhanden ist in der angegebenen Periode. Können, überprüfen Sie den Namen der Eimer, die Sie verwenden für die Rechtschreibfehler und wenn Ihr die gleichen Eimer, wo Sie sehen, dass das Objekt/ - Datei ?Dies ist nicht Authentifizierungsfehler sicher.
- Amazon-Dokumentation saugt, dass sich diese Frage nicht downvoted. Seine verrückten, um herauszufinden, S3-Programmierung.
- In dieser Zeit, Index.html nicht gefunden unter einem beliebigen Ordner. Die AWS-S3-buckets Berechtigungen nicht wahrnehmen, wie AWS-Dokumentation sagt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, dieser Fehler ist eigentlich ziemlich straight forward. es bedeutet einfach, dass Ihre Datei nicht vorhanden ist, bis in den S3-bucket. Mehrere Dinge, die falsch sein könnte:
Könnten Sie versuchen, den Verweis auf die falsche Datei. überprüfen Sie den Pfad, die Sie versucht haben abzurufen.
Wenn die Datei hochgeladen wurde muss Sie versagt haben. Überprüfen Sie die Protokolle für Ihre S3Sync Prozess, um zu sehen, wenn Sie finden jeden relevanten Ausgang
Quelle
root
underrors
den gleichenindex.html
- Datei. So werden die frontend-app kann als catch-all und Sinn von beliebigen URL-Schema.Für mich, das Objekt definitiv vorhanden und wurde korrekt hochgeladen, aber die s3-url warf noch den gleichen Fehler:
Fand ich heraus, dass der Grund war, weil meine Dateinamen enthalten eine
#
symbol, und ich denke, bestimmte Zeichen oder Symbole werden auch diese Fehler verursachen.Entfernen Sie dieses Zeichen und der Erzeugung der neuen s3-url mein Problem gelöst.
Beachten Sie, dass dies passieren kann, auch wenn der Dateipfad korrekt ist, wegen s3 eventuelle Konsistenz-Modell. Im Grunde, kann es eine gewisse Latenzzeit, in der Lage zu Lesen, ein Objekt, nachdem es geschrieben ist. Sehen diese Dokumentation für weitere Informationen.
In meinem Fall war der Fehler erscheint, weil ich hochgeladen habe den gesamten Ordner mit den website-Dateien in den container.
Ich löste es, indem Sie alle Dateien außerhalb der Ordner, direkt in den container.
Den Grund für das Problem ist eine falsch-oder Tippfehler in den Eimer/Key-name. Tun prüfen Sie, ob der Eimer oder Namen für den Schlüssel ein, den Sie bereitstellen existiert.