Javascript 无法从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

我知道我很傻,可能它甚至不需要使用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('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',
(这是末尾的一个逗号。现在似乎已排序)。