0

誰かが助けてくれることを願っています。私は AWS SDK を初めて使用します。サブバケットを含むバケットがあります。Cyber​​Duck でログインしてバケット内のファイルを変更/削除できるので、正しいアクセス キーとシークレットを持っていますが、バケットの内容を一覧表示しようとすると、AccessDenied / 403 エラー コードが表示されます。

これが私が現在取り組んでいるコードです。これは非常に簡単です。バケットの内容を一覧表示するのを妨げているアカウント (他の権限) で他に何かする必要があるかどうかはわかりません。注意すべきことの 1 つは、$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

どんな助けでも大歓迎です!

4

1 に答える 1

0

私は会社の AWS コンソールへの管理者アクセス権を持っていなかったので、先に進んで s3 アカウントを取得しました。すべてが正常に機能しています。修正が必要なパーミッションがあるかどうかを確認するために、他の開発者と話をするつもりですが、すべてが期待どおりに機能しています。掘り下げる前に、まずこれを行うべきでした。私に送信された認証情報は十分にグローバルなものだと思いました:(

于 2016-07-03T21:02:59.457 に答える