首页 > 解决方案 > 为什么使用适用于 JavaScript 的 AWS 开发工具包列出 S3 存储桶文件夹中的对象会返回空的 Contents 数组但 KeyCount 大于 1?

问题描述

我在 S3 中有一个名为myBucketName的存储桶。它有一个名为myFolderName的文件夹,其中包含一个文件myFile

我尝试像这样列出文件夹中的对象:

s3.listObjectsV2({       
  Bucket: 'myBucketName',
  Delimiter: "/",
  Prefix: 'myFolderName',
})

随着回应

{
  IsTruncated: false,
  Contents: [],    
  Name: 'myBucketName',
  Prefix: 'myFolderName',
  Delimiter: '/',
  MaxKeys: 1000,
  CommonPrefixes: [ { Prefix: 'myFolderName/' } ],
  KeyCount: 1 
}

Contents即使KeyCount是 1 ,为什么数组是空的?我本来希望包含一个带有 Key == 'myFolderName/myFile' 的项目

我应该怎么做才能获得所需的结果,即文件夹中的对象列表?

标签: node.jsamazon-s3aws-sdk

解决方案


列出对象时使用Prefix: 'myFolderName/'(带有正斜杠)。/它告诉您在您询问的文件夹中只有一个“对象”(一个文件夹)。


推荐阅读