首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在S3桶中获取根目录中主文件夹的列表?亚马逊S3

如何在S3桶中获取根目录中主文件夹的列表?亚马逊S3
EN

Stack Overflow用户
提问于 2022-10-12 11:54:13
回答 1查看 94关注 0票数 0

我有一个包含文件夹和包含文件的子文件夹的S3桶,我试图列出根目录中的所有文件夹名。我不想列出子文件夹和文件。

代码语言:javascript
代码运行次数:0
运行
复制
ex:
Test/Test1
Test/Test2
Test/Test3
Test/Test4
etc...

我尝试了下面的代码,它列出根目录中的所有键

代码语言:javascript
代码运行次数:0
运行
复制
getListAllKeys(rootDirectory) {
    const containedEntities = {
      files: [],
      directories: []
    };
    const params = {
      Bucket: this.bucket,
      Prefix: Test/,
      Delimiter: Test/
    };

    return new Promise((resolve, reject) => this._listAllKeys(
      resolve,
      reject,
      params,
      containedEntities
    ));
  }

  
  _listAllKeys(resolve, reject, params, containedEntities) {
    this.s3.listObjectsV2(params).promise()
      .then(({
        Contents, IsTruncated, NextContinuationToken,
      }) => {                   
        // filter files and directories
        Contents.forEach((item) => {
          containedEntities[item.Key.endsWith('/') ? 'directories' : 'files'].push(item);
        });
        // fetch further info if response is truncated
        if (IsTruncated) {
          this._listAllKeys(
            resolve,
            reject,
            Object.assign(params, { ContinuationToken: NextContinuationToken }),
            containedEntities
          );
        } else {
          resolve(containedEntities);
        }
      })
      .catch(reject);
  }

我正在使用AWS软件包。请告诉我如何只列出主要文件夹。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-12 12:18:02

若要获取目录列表,请指定Delimiter='/' (没有指定前缀)。

顶部(根)级别的目录列表将在一个名为CommonPrefixes的列表中返回。

通过指定前缀,它也适用于子文件夹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74041404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档