2016-10-04 20 views
3

S3を使用するには、初めてPHP AWS SDK( "aws/aws-sdk-php": "^ 3.19")を使用します。PHP Amazon SDK、S3バケットアクセスが拒否されました

私はバケツ作成:私はポリシーを作成し

'をmyfirstbucket-jeremycを':

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:PutObject", 
       "s3:GetObject", 
       "s3:DeleteObject" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::myfirstbucket-jeremyc/*" 
      ] 
     } 
    ] 
} 

私はグループにポリシーを適用し、その後でユーザーのS3-myfirstbucket-jeremyc」を作成このグループ。

<?php 
use Aws\S3\S3Client; 
use Aws\S3\Exception\S3Exception; 

error_reporting(E_ALL); 

require(__DIR__ . '/vendor/autoload.php'); 

$s3Client = S3Client::factory([ 
    'credentials' => [ 
     'key' => $_SERVER['AWS_S3_CLIENT_KEY'], 
     'secret' => $_SERVER['AWS_S3_CLIENT_SECRET'] 
    ], 
    'region' => 'eu-west-1', 
    'version' => 'latest', 
    'scheme' => 'http' 
]); 

$result = $s3Client->putObject(array(
    'Bucket' => 'myfirstbucket-jeremyc', 
    'Key' => 'text.txt', 
    'Body' => 'Hello, world!', 
    'ACL' => 'public-read' 
    )); 

しかし、私はこのエラーを取得:

私のPHPコードがある

Error executing "PutObject" on " http://s3-eu-west-1.amazonaws.com/myfirstbucket-jeremyc/text.txt "; AWS HTTP error: Client error: PUT http://s3-eu-west-1.amazonaws.com/myfirstbucket-jeremyc/text.txt resulted in a 403 Forbidden response

を私が間違っているどこに知っていますか?

ありがとうございます!

答えて

3

新しいオブジェクトのACLを設定していますが、あなたは​​を許可していません。

+1

ありがとうございます!それは、ACLの行をコメントしたり、ポリシーに "s3:PutObjectAcl"を追加して動作します。 – JeremyC

関連する問題