S3 :: getObjectInfo [403]意外的HTTP状态

时间:2015-11-20 10:02:35

标签: php amazon-web-services amazon-s3 amazon-ec2

我正在使用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政策存在问题,但不确定是什么。 任何建议都会非常有用。

1 个答案:

答案 0 :(得分:0)

问题的主要原因是本地计算机中的AWS CLI版本不匹配。

在所有本地计算机上安装了最新版本的AWS CLI,它解决了这个问题。

现在我的所有请求都获得200(OK)状态。