AWS。 S3。如何按桶(listObjectsV2)获取对象列表?

AWS. S3. How to get list of objects by bucket (listObjectsV2)?

我需要从我的 AWS s3 存储桶中获取对象列表。我试试:

const s3 = new AWS.S3();

const params = {
    Bucket: "arn:aws:s3:::test-bucket-n-i",
    MaxKeys: 10
};
s3.listObjectsV2(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

我从我的测试桶中复制了这个 Arn。结果我得到:

 InvalidARN: ARN accountID does not match regex "[0-9]{12}"

怎么会无效呢?如何在不创建访问点的情况下调用 s3.listObjectsV2?

如果您正在使用

  Bucket: "arn:aws:s3:::test-bucket-n-i",

这意味着您正在使用 S3 访问点。访问点特定于账户,给定的 ARN 是无效的访问点 ARN。

如果您不使用访问点,那么您只需提供存储桶名称:

  Bucket: "test-bucket-n-i",