[英]S3 error access when upgrading AWS PHP SDK versions
我正在将使用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。据我所知,我没有手动进行任何计算。
我做错了什么? 有什么想法如何解决吗?
刚找到我问题的答案。
问题是:在aws-php-sdk v2
我有以下代码:
$bucket = "mybucketname/myfolder";
$key = "myfilename.jpg";
$upload = $this->app->S3->upload($bucket, $key, fopen( $local , 'rb'), 'public-read');
这可以很好地工作,并且不会显示任何警告/错误,但是在升级到aws-php-sdk v3
时不起作用。 我只是将$bucket
和$key
值更改为:
$bucket = "mybucketname";
$key = "myfolder/myfilename.jpg";
$upload = $this->app->S3->upload($bucket, $key, fopen( $local , 'rb'), 'public-read');
它只是工作!
真的很奇怪,它在v2
中没有抱怨,而在v3
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.