Behebung des Fehlers „Anfragesignatur stimmt nicht überein“ in Amazon S3 mit PHP SDK
Beim Versuch, eine Verbindung zu Amazon herzustellen Wenn Sie einen S3-Bucket mit dem AWS SDK für PHP verwenden, tritt möglicherweise die Fehlermeldung auf: „Die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen bereitgestellten Signatur überein.“ Dies kann ein frustrierendes Problem sein, insbesondere nachdem unzählige Stunden mit der Suche nach Lösungen verbracht wurden.
Schritte zur Fehlerbehebung
In diesem speziellen Szenario trat der Fehler aufgrund einer unerwarteten Quelle auf – der Objektschlüssel. Bei näherer Betrachtung stellte sich heraus, dass der dem Objekt zugewiesene Schlüssel mit einem Punkt (.) begann, der einen relativen Pfad angab. Dieses scheinbar harmlose Zeichen führte dazu, dass die Signaturberechnung fehlschlug.
Lösung
Um dieses Problem zu beheben, stellen Sie einfach sicher, dass der Objektschlüssel nicht mit einem Punkt beginnt. Mit dem folgenden Code wird ein Objekt erfolgreich in einen S3-Bucket hochgeladen:
$result = $s3Client->putObject(array( 'Bucket' => $bucket, 'Key' => 'images/ABC.jpg', // Key does not start with a period 'Body' => 'Hello World!' ));
Durch Entfernen des führenden Punkts aus dem Objektschlüssel war die Signaturberechnung erfolgreich und das Objekt wurde ohne Fehler in den S3-Bucket hochgeladen .
Das obige ist der detaillierte Inhalt vonWarum schlägt mein PHP-Amazon S3-Upload mit der Fehlermeldung „Anforderungssignatur stimmt nicht überein' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!