AWS node.js SDK使用AWS示例

时间:2016-02-05 18:52:48

标签: node.js amazon-web-services amazon-s3 aws-sdk

我是AWS新手,也许我错过了一些明显的东西,所以需要帮助。

我有2个版本的代码,唯一不同的是传递桶作为4个字符串vs 5个字符。从aws得到不同的回应。 那是为什么?

var AWS = require('aws-sdk');
var s3 = new AWS.S3(); 

s3.createBucket({Bucket: 'node4'}, function() {
  var params = {Bucket: 'node4', Key: 'myKey', Body: 'Hello!'};
  s3.putObject(params, function(err, data) {
      if (err)       
          console.log(err)     
      else
        console.log("Successfully uploaded data to myBucket/myKey");   
   });
});

运行app.js:

➜  aws  node app.js
{ [AllAccessDisabled: All access to this object has been disabled]
  message: 'All access to this object has been disabled',
  code: 'AllAccessDisabled',
  region: null,
  time: Fri Feb 05 2016 20:45:11 GMT+0200 (IST),
  requestId: 'somerequestId',
  extendedRequestId: 'someextendedRequestId',
  statusCode: 403,
  retryable: false,
  retryDelay: 30 }

第二个代码:

var AWS = require('aws-sdk');
var s3 = new AWS.S3(); 

s3.createBucket({Bucket: 'node4e'}, function() {
  var params = {Bucket: 'node4e', Key: 'myKey', Body: 'Hello!'};
  s3.putObject(params, function(err, data) {
      if (err)       
          console.log(err)     
      else
        console.log("Successfully uploaded data to myBucket/myKey");   
   });
});

运行app.js:

➜  aws  node app.js
Successfully uploaded data to myBucket/myKey

1 个答案:

答案 0 :(得分:1)

  

唯一不同的是将桶作为4个字符串传递给5个字符

实际上,唯一的区别是您没有对名为“node4”的存储桶的写入权限,并且您可以访问名为“node4e”的存储桶。您是否检查过两个桶是否实际成功创建?我注意到您没有在createBucket()来电中检查错误,只是putObject()来电。

这些是您正在使用的相当通用的存储桶名称,如果失败的“node4”已经被另一个AWS账户使用,我不会感到惊讶。