[英]Not able to copy the file to another bucket showing error(NoSuchKey: The specified key does not exist.)
[英]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.