【发布时间】:2019-07-12 04:42:47
【问题描述】:
我正在将使用aws-php-sdk v2 的系统升级到aws-php-sdk v3。
在v2 我有类似的东西:
$this->s3->upload($bucket, $key, $file, 'public-read');
//Where $this->s3 is a S3Client instance (from the SDK).
而且效果很好。
现在,升级到aws-php-sdk v3 后,它会抛出错误:
在“https://s3.region.amazonaws.com/folder/file.ext”上执行“PutObject”时出错。
客户端错误:
PUT https://s3.region.amazonaws.com/folder/file.ext导致403 Forbidden响应我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。
我使用与v2 系统中相同的 accessKey 和 secret。
据我所知,负责签名计算的是 PHP SDK。因为我没有手动进行任何计算。
我做错了什么?任何想法如何解决它?
【问题讨论】:
-
看看这个question.也许对你有帮助。
-
这个solution 适合我。
-
@Refilon 刚刚阅读了那个问题。我尝试使用
$buckets = $this->s3->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; }读取存储桶列表,它起作用了,它与可用存储桶相呼应......所以密钥或秘密不是问题 -
@AshiqurRahman 您的链接等于 Refilon 链接...还有其他想法吗?
-
@SpencerD,我使用的是
v3.96.0,刚刚升级到v3.101.0,得到了同样的错误
标签: php aws-php-sdk