Javascript 无法从S3下载
我知道我很傻,可能它甚至不需要使用S3语法(因为如果我不编写类,它就可以正常工作,只是作为一个脚本) 这是我的密码-Javascript 无法从S3下载,javascript,amazon-s3,Javascript,Amazon S3,我知道我很傻,可能它甚至不需要使用S3语法(因为如果我不编写类,它就可以正常工作,只是作为一个脚本) 这是我的密码- const logger = require('../../worker/utils/logger'); const AWS = require('aws-sdk'); const config = require('../../config'); const AWS_STORAGE_BUCKET_NAME = 'my-bucket'; const fs = require('f
const logger = require('../../worker/utils/logger');
const AWS = require('aws-sdk');
const config = require('../../config');
const AWS_STORAGE_BUCKET_NAME = 'my-bucket';
const fs = require('fs');
class DownloadContextData {
constructor() {}
download(key, filename) {
AWS.config.update({
accessKeyId: config.AWS_ACCESS_KEY_ID,
secretAccessKey: config.AWS_SECRET_ACCESS_KEY,
region: config.AWS_STORAGE_REGION,
});
const s3 = new AWS.S3();
try {
const file = fs.createWriteStream(filename);
s3.getObject({ Bucket: `${AWS_STORAGE_BUCKET_NAME}`, Key: `${key}` })
.createReadStream()
.pipe(file);
} catch (error) {
logger.err(e);
}
}
getOjectFileKey(key) {
return `rec_context/rec_context_${key}000`;
}
getListingContext() {
return this.download(
this.getOjectFileKey('building'),
'myfile.txt',
);
}
}
module.exports = DownloadContextData;
现在,当我
let downLoadContextData = new DownloadContextData();
downLoadContextData. getListingContext();
它抛出了错误
'授权标头格式不正确;授权标头需要三个组件:凭证、签名标头和签名。”
我知道我的代码和其他一切都是完美的,因为我把整个事情写成了一个脚本,而且它很有效。这就是我如何构建/使用这个类,因为我对Javascript还不熟悉。您的Javascript语法似乎是正确的。您确定您的bucket设置或配置文件中的数据类型正确吗?我用我的配置尝试了你的代码,并尝试下载了一个文件,我已经获得了该文件。我是说。。。你所有的配置值都应该是字符串。你给我指出了一个很好的方向。因此,我在
.env
文件中将一个键设置为AWS\u ACCESS\u key\u ID='ABCDEFGHI',
(这是末尾的一个逗号。现在似乎已排序)。