首页 >后端开发 >php教程 >为什么我的 PHP Amazon S3 上传失败并出现'请求签名不匹配”错误?

为什么我的 PHP Amazon S3 上传失败并出现'请求签名不匹配”错误?

DDD
DDD原创
2024-12-05 09:31:13766浏览

Why Does My PHP Amazon S3 Upload Fail with a

使用 PHP SDK 解决 Amazon S3 中的“请求签名不匹配”错误

尝试建立与 Amazon 的连接时使用适用于 PHP 的 AWS 开发工具包的 S3 存储桶时,您可能会遇到错误“我们计算的请求签名与您提供的签名不匹配”。这可能是一个令人沮丧的问题,尤其是在花费了无数个小时寻找解决方案之后。

故障排除步骤

在这种特定情况下,由于意外来源而发生错误 -对象键。经过仔细检查,发现分配给该对象的键以句点(.)开头,表示相对路径。这个看似无害的字符导致签名计算失败。

解决方案

要解决此问题,只需确保对象密钥不以句点开头即可。以下代码将成功将对象上传到 S3 存储桶:

$result = $s3Client->putObject(array(
    'Bucket' => $bucket,
    'Key' => 'images/ABC.jpg', // Key does not start with a period
    'Body' => 'Hello World!'
));

通过删除对象密钥中的前导句点,签名计算成功,并且对象已上传到 S3 存储桶,没有任何错误.

以上是为什么我的 PHP Amazon S3 上传失败并出现'请求签名不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn