使用 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中文网其他相关文章!