如何使用Node.js获取Google Cloud Storage文件夹中的文件列表?

时间:2018-04-06 03:43:18

标签: node.js google-cloud-storage

使用bucket.getFiles()可以获取存储桶中的所有文件。

我的存储桶有数千个文件,我真的只想获取特定文件夹中文件的元数据。

documentation尚不清楚如何从文件夹中获取文件。显然it is possible to limit the results GetFilesRequest,但没有一个选项包含路径或文件夹,至少没有明确说明。

2 个答案:

答案 0 :(得分:6)

Google云端存储没有文件夹/子目录。这是平面命名空间之上的错觉。即你所看到的子目录实际上是名称中带有“/”字符的对象。

您可以通过以下链接详细了解Google云存储子目录的工作原理https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork

因此,通过将prefix GetFilesRequest参数设置为您感兴趣的子目录名称,将返回您要查找的对象。

答案 1 :(得分:2)

可以在选项中指定所需路径的前缀,例如

async function readFiles () {
  const [files] = await bucket.getFiles({ prefix: 'users/user42'});
  console.log('Files:');
  files.forEach(file => {
    console.log(file.name);
  });
};

此示例为最后一个示例: https://cloud.google.com/nodejs/docs/reference/storage/2.3.x/Bucket#getFiles

可悲的是,关于方法的可能选项的信息很少。希望文档团队会尽快进行更改。