繁体   English   中英

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

[英]How to list directories in a GCS bucket using NodeJS

我如果您正在使用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)});

这将返回具有完整路径的所有文件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);

这将返回根路径下的目录列表,其中包含尾随/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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM