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 » ?

Pourquoi mon téléchargement PHP Amazon S3 échoue-t-il avec une erreur « La signature de la demande ne correspond pas » ?

DDD
DDDoriginal
2024-12-05 09:31:13754parcourir

Why Does My PHP Amazon S3 Upload Fail with a

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn