Video: #093 Wie Du besser mit Selbstzweifeln umgehen kannst 2024
Es wäre schön, wenn beim REST-Aufruf von AWS alles genau wie geplant funktioniert. Es können jedoch eine Reihe von Problemen auftreten, die zu einer Fehlermeldung führen, die der hier gezeigten ähnelt. Beachten Sie, dass das Bild nicht vollständig ist. Die Schlüsselwerte werden blockiert, um die Benutzerfreundlichkeit der Zugriffsschlüssel zu erhalten.
Fehlermeldungen können verschiedene Formen annehmen.Das Problem kann aus verschiedenen Quellen stammen. Das erste Problem besteht darin, die Signatur per URL zu codieren, um sicherzustellen, dass Sonderzeichen in der URL-Zeichenfolge AWS nicht verwirren. Ein Tool, mit dem Sie dieses Problem beheben können, ist der URL Decoder / Encoder. Um dieses Tool zu verwenden, fügen Sie einfach die Signatur (nicht die gesamte URL) in das Feld ein und klicken Sie auf Encode. Die resultierende Signatur enthält keine Sonderzeichen, sondern verwendet eine URL-Codierung, um Probleme zu vermeiden.
Auch wenn Sie die von Amazon bereitgestellten Code-Snippets verwenden, kann auch die Signaturberechnung fehlerhaft sein. Betrachten Sie noch einmal das erste Bild, in den
StringToSign
und
StringToSignBytes
-Elementen. Diese Elemente sagen Ihnen, was AWS erwartet hat, als es die Signatur überprüft hat. Natürlich gibt es immer noch keinen Hinweis darauf, welchen Wert Sie für eine Signatur hätten bieten sollen. Glücklicherweise kann der Amazon Signature Tester diese Informationen bereitstellen.
Sie laden den Amazon Signature Tester auf Ihre Festplatte herunter. Was Sie bekommen, ist eine README-Datei und eine HTML-Seite, die Sie in Ihren Browser laden. Das folgende Bild zeigt, wie der untere Teil dieser Seite angezeigt wird. Sie möchten unten auf der Seite arbeiten, da sie zwei Felder enthält, die Sie angeben müssen: den
StringToSignBytes
-Elementwert und Ihren geheimen Schlüssel.
Wenn Sie auf Signatur abrufen klicken, sehen Sie den
StringToSign
-Elementwert, wie AWS es sieht, die tatsächliche Signatur und die URL-codierte Signatur. Sie verwenden die URL-codierte Signatur bei Ihrem Aufruf von AWS. Um diese Signatur zu überprüfen, ersetzen Sie einfach den aktuellen Wert in der URL-Zeichenfolge durch diesen neuen Wert. Wenn das Problem in Ihrem Signaturcode liegt, sollte der Aufruf wie erwartet funktionieren.
Der Grund für die erneute Überprüfung des
StringToSign
-Elementwerts besteht darin, dass AWS dies möglicherweise anders sieht als Sie. Beachten Sie zum Beispiel, dass in diesem Fall drei Zeilenvorschubzeichen zwischen
GET
und dem Wert
Abläuft
von 1490652000 stehen. Wenn Ihr Signaturberechnungscode diese Anforderung nicht berücksichtigt, Unterschrift ist falsch.Weitere Fehlerbehebungshilfen finden Sie hier.