Maison >développement back-end >tutoriel php >Pourquoi mon téléchargement PHP Amazon S3 échoue-t-il avec une erreur « La signature de la demande ne correspond pas » ?
Résolution de l'erreur « La signature de la demande ne correspond pas » dans Amazon S3 avec le SDK PHP
Lors de la tentative d'établissement d'une connexion à un Amazon S3 à l'aide du kit AWS SDK pour PHP, vous pouvez rencontrer l'erreur « La signature de la demande que nous avons calculée ne correspond pas à la signature que vous avez fournie. » Cela peut être un problème frustrant, surtout après avoir passé d'innombrables heures à chercher des solutions.
Étapes de dépannage
Dans ce scénario spécifique, l'erreur s'est produite en raison d'une source inattendue : la clé de l'objet. Après un examen plus approfondi, il a été découvert que la clé attribuée à l'objet commençait par un point (.), indiquant un chemin relatif. Ce caractère en apparence anodin a fait échouer le calcul de la signature.
Solution
Pour résoudre ce problème, assurez-vous simplement que la clé de l'objet ne commence pas par un point. Le code suivant permettra de télécharger avec succès un objet dans un compartiment S3 :
$result = $s3Client->putObject(array( 'Bucket' => $bucket, 'Key' => 'images/ABC.jpg', // Key does not start with a period 'Body' => 'Hello World!' ));
En supprimant le point initial de la clé de l'objet, le calcul de la signature a réussi et l'objet a été téléchargé dans le compartiment S3 sans aucune erreur. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!