2017-05-17 26 views
0

可能嗎?我上傳圖片後沒有權限。我認爲它應該與ACL: 'public-read'數據。 這是我的代碼:在S3中的lambda函數中上傳圖像後更改圖像的權限

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