如何使用NodeJS列出GCS存储桶中的目录

如果您使用的是NodeJS GCS客户端库,并希望列出您的存储桶中的目录,那么您如何执行此操作?

首先通过运行以下命令将NodeJS GCS客户端库的依赖关系添加到您的package.json文件中:

 npm -i @google-cloud/storage --save 

然后将其添加到您的代码中以列出所有文件

 const storage = require('@google-cloud/storage'); ... const projectId = '<<<<<your-project-id-here>>>>>'; const gcs = storage({ projectId: projectId }); let bucketName = '<<<<<your-bucket-name-here>>>>>'; let bucket = gcs.bucket(bucketName); bucket.getFiles({}, (err, files,apires) => {console.log(err,files,apires)}); 

这将返回具有完整path的所有文件files

要仅列出目录,您必须在客户端库中解决一个问题,要求您不使用自动分页,然后向CB返回一个额外的参数。 为此,请将代码更改为:

 let cb=(err, files,next,apires) => { console.log(err,files,apires); if(!!next) { bucket.getFiles(next,cb); } } bucket.getFiles({delimiter:'/', autoPaginate:false}, cb); 

这将返回根path下的目录列表,尾随/apires.prefixes

要仅列出foo/目录下的目录,请使用以下代码:

 let cb=(err, files,next,apires) => { console.log(err,files,apires); if(!!next) { bucket.getFiles(next,cb); } } bucket.getFiles({prefix:'foo/', delimiter:'/', autoPaginate:false}, cb);