AWS SDK 2.8使用AccessDenied / 403卡在getIterator()函数中

时间:2016-07-03 20:30:07

标签: amazon-s3 aws-php-sdk

希望有人可以提供帮助。我是AWS SDK的新手,我们有桶,带子桶。我有正确的访问密钥和密钥,因为我可以使用Cyber​​Duck登录并修改/删除存储桶中的文件,但是当我尝试列出存储桶内容时,我收到了AccessDenied / 403错误代码。

以下是我目前正在使用的代码,这看起来非常简单。我只是不知道我的帐户中是否还有其他需要做的事情(其他的permisisons)阻止我列出存储桶内容。需要注意的一点是,如果我使用$ client-> ListBuckets(),我可以看到所有的桶都可用,但它只是迭代器部分被阻止。

require 'vendor/autoload.php';

use Aws\Common\Aws;
use Aws\Common\Iterator\AwsResourceIterator;

$aws = Aws::factory(array(
    'key' => '###my_key###',
    'secret' => '###my_secret###'
));

$client = $aws->get('s3');

$iterator = $client->getIterator('ListObjects', array('Bucket' => $bucket));

foreach ($iterator as $object) {
    echo $object['Key'] . "\n";
}

这是我得到的错误:

Fatal error: Uncaught Aws\S3\Exception\AccessDeniedException: AWS Error Code: AccessDenied, Status Code: 403, AWS Request ID: 195F81351F864AE4, AWS Error Type: client, AWS Error Message: Access Denied, User-Agent: aws-sdk-php2/2.8.30 Guzzle/3.9.3 curl/7.38.0 PHP/5.6.16 ITR thrown in /Volumes/localdev/www/aws/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

由于我没有管理员访问我们公司的AWS控制台,所以我继续为自己设立了一个s3帐户,一切正常。我将与其他开发人员交谈,看看我们是否有任何我们需要修复的权限,但现在一切都按预期工作了。在深入研究之前,我应该先做到这一点。我只是觉得发给我的凭据足够全球:(