Node.js 303连接到AWS-SDK时的永久重定向

axs*_*uze 3 javascript amazon-s3 amazon-web-services node.js http-status-code-301

下午好,

我正在尝试建立与我的aws产品api的连接,但是我一直收到301永久重定向错误,如下所示:

{ [PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.]
  message: 'The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.',
  code: 'PermanentRedirect',
  name: 'PermanentRedirect',
  statusCode: 301,
  retryable: false }
Run Code Online (Sandbox Code Playgroud)

我用来连接API的代码如下:

var aws = require('aws-sdk');

//Setting up the AWS API
aws.config.update({
    accessKeyId: 'KEY',
    secretAccessKey: 'SECRET',
    region: 'eu-west-1'
})

var s3 = new aws.S3();

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

如果我尝试使用不同的区域,比如us-west-1,我就会得到同样的错误.

我究竟做错了什么?

非常感谢你提前!

axs*_*uze 5

我已经解决了这个问题:

您必须确保已经创建了一个具有相同名称的存储桶; 在这种情况下,存储桶的名称将是"myBucket".

s3.createBucket({Bucket: 'myBucket'}, function() {
var params = {Bucket: 'myBucket', Key: 'myKey', Body: 'Hello!'}; 
Run Code Online (Sandbox Code Playgroud)

创建存储桶后,转到属性并查看其使用的区域 - 将其添加到:

aws.config.update({
    accessKeyId: 'KEY',
    secretAccessKey: 'SECRET',
    region: 'eu-west-1'
})
Run Code Online (Sandbox Code Playgroud)

现在它应该工作!最好的祝愿