2017-05-17 7 views
0

可能ですか?画像をアップロードした後、それにはパーミッションはありません。私はそれがデータにACL: 'public-read'を入れて動作するはずだと思った。 これは私のコードです:S3のラムダ関数内で画像をアップロードした後に画像の許可を変更する

var data = {ACL: 'public-read', Bucket: 's3.bucket', Key: 'latest.png', Body: result.Body, ContentLength: result.ContentLength}; 

s3.putObject(data, function(err, output_data) { 
    if (err) { 
       console.log('Error uploading data: ', err); 
      } 
      else { 
      console.log('succesfully uploaded the image!'); 
      } 
    }); 

しかし、私はこのエラーを取得しています:

Error uploading data: { AccessDenied: Access Denied 
    at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:539:35) 
    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20) 
    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10) 
    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:673:14) 
    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10) 
    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12) 
    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10 
    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9) 
    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:675:12) 
    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18) 
    message: 'Access Denied', 
    code: 'AccessDenied', 
    region: null, 
    time: 2017-05-17T11:16:29.747Z, 

バケット自体がすべての権限を持っています。

答えて

2

あなたのエラーは、地域:nullを示しています。 S3には一意のグローバルエンドポイントがありますが、データは特定の場所に保存され、コンテンツをs3バケットにアップロードする際にリージョンを提供する必要があります。

+0

ありがとうございますが、問題が見つかりました。私は "s3:PutObjectAcl"をポリシーに入れなければならないことを知らなかった。 – Eugen

関連する問題