我正在使用getObjectInfo($bucket, $fileUri)
来获取我在S3上的文件的详细信息。
相同的代码正在处理EC2实例&我收到以下回复:
object(stdClass)#10 (4) {
["error"]=>
bool(false)
["body"]=>
NULL
["headers"]=>
array(5) {
["date"]=>
int(1447937934)
["time"]=>
int(1447835426)
["hash"]=>
string(32) "9841b46a11dfe58z86196cfr812i81sv"
["type"]=>
string(24) "application/octet-stream"
["size"]=>
int(5415)
}
["code"]=>
int(200)
}
但是当我从本地机器尝试相同的代码时,我得到以下响应:
object(stdClass)#10 (4) {
["error"]=>
bool(false)
["body"]=>
NULL
["headers"]=>
array(2) {
["type"]=>
string(15) "application/xml"
["date"]=>
int(1447935810)
}
["code"]=>
int(403)
}
这个警告:
PHP Warning: S3::getObjectInfo(bucket01,folder1/2015_01_01/abcdefgh/abcdefgh.txt): [403] Unexpected HTTP status in /abc/def/S3.php on line 355
我正在从以下链接使用amazon S3 PHP类进行REST:http://undesigned.org.za/2007/10/22/amazon-s3-php-class
我觉得S3 Bucket政策存在问题,但不确定是什么。 任何建议都会非常有用。
答案 0 :(得分:0)
问题的主要原因是本地计算机中的AWS CLI版本不匹配。
在所有本地计算机上安装了最新版本的AWS CLI,它解决了这个问题。
现在我的所有请求都获得200(OK)状态。