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

Pie*_*ier 4 node.js google-cloud-storage

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

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

文件是不是就如何刚刚从一个文件夹获取文件清晰.显然,可以使用GetFilesRequest但不包括路径或文件夹的选项来限制结果,至少不是明确的.

Jos*_*hin 7

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

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

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


小智 5

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

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

该示例是这里的最后一个示例:https : //cloud.google.com/nodejs/docs/reference/storage/2.3.x/Bucket#getFiles

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