繁体   English   中英

aws-sdk: NoSuchKey: 指定的密钥不存在?

[英]aws-sdk: NoSuchKey: The specified key does not exist?

在我的 nodejs 项目中,我正在使用 aws-sdk 从我的 s3 存储桶下载所有图像,但我收到了这个错误 - NoSuchKey:指定的密钥不存在。 但是密钥是正确的,我可以使用这些密钥上传图像。

我的代码是:

var AWS = require('aws-sdk');
  s3 = new AWS.S3();
  var params = {
        Bucket:  config.get("aws.s3.bucket"),
        Key: config.get("aws.credentials.secretAccessKey")
    };
    s3.getObject(params, function (err, data) {
        console.log("data");
        if (err) console.log(err, err.stack); // an error occurred
        else console.log(data);
    });
}

谁能告诉我我哪里做错了?

aws-sdk 的使用方法有问题,应该是下面的例子:

var aws = require('aws-sdk');
aws.config.update({
  accessKeyId: {{AWS_ACCESS_KEY}},
  secretAccessKey: {{AWS_SECRET_KEY}}
});
var s3 = new aws.S3();
var s3Params = {
    Bucket:  {{bucket name}},
    Key: {{path to dedicated S3 Object (folder name + file/object 
    name)}}
};
s3.getObject(s3Params, function (err, data) {
  //Continue handling the returned results.
});

用正确的数据替换 {{}} 中的字符串,它应该可以正常工作。

这是因为 img url 不存在于同一用户。意味着当您在 aws 中上传图像时,您将 img alone.jpeg 放在您的 postman 中。但是在 getobject 中,您使用相同的用户发布 image.jpg。结论是该图像应该是您上传的内容与同一用户相同。 [当你得到一个 getObject 时,你用同一个用户发布这张图片]

当您将图像上传到 aws [1] 时: https://i.stack.imgur.com/WLh5v.png

但是当您将 getObject 与具有相同用户(您正在使用哪个用户的令牌)的另一个图像一起使用时,它会给出相同的错误。 当您改为使用 image.jpg [1] 时: https://i.stack.imgur.com/WLh5v.png

所以使用相同的图像键。 使用来自 aws 响应的图像密钥而不是 url。

您可能需要 sudo 才能读取密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM