似乎无法通过密钥访问S3存储桶内容

时间:2020-03-24 12:29:30

标签: javascript amazon-s3

我正在使用aws javascript sdk,由于某种原因,我可以访问整个存储桶内容,但是当我添加prefix时,我得到的是null而不是这些内容的子集。例如,以下代码返回所有存储桶内容:

AWS.config.accessKeyId = this.s3.config["accessKeyId"];
AWS.config.secretAccessKey = this.s3.config["secretAccessKey"];
AWS.config.region = 'us-east-2';

var aws = new AWS.S3();
var all_params = {Bucket: 'bucket-name'};

new Promise(resolve => {
  aws.listObjectsV2(all_params, function (err, url) {
    console.log(url)
    resolve(url)
  });
})

返回的对象包含1000条记录,其中大多数采用Key: "clients/after_fronts/000..."格式。但是,当我运行以下命令时,会得到一个null对象:

AWS.config.accessKeyId = this.s3.config["accessKeyId"];
AWS.config.secretAccessKey = this.s3.config["secretAccessKey"];
AWS.config.region = 'us-east-2';

var key = "clients"
var aws = new AWS.S3();
var params = {Bucket: 'bucket-name', prefix: key};

return new Promise(resolve => {
  aws.listObjectsV2(params, function (err, url) {
    console.log(url)
    resolve(url)
  });
})

我认为这可能是权限问题,但是我不确定为什么它返回不带前缀的数据,然后不返回带前缀的数据。还有什么可能发生?

1 个答案:

答案 0 :(得分:1)

好吧,盯着看一个小时后,我意识到文档要求Prefix而不是prefix,并且大写字母改变了一切。