1
I NodeJS GCSクライアントライブラリを使用していて、バケットにディレクトリをリストする場合はどうしますか?NodeJSを使用してGCSバケット内のディレクトリを一覧表示する方法
I NodeJS GCSクライアントライブラリを使用していて、バケットにディレクトリをリストする場合はどうしますか?NodeJSを使用してGCSバケット内のディレクトリを一覧表示する方法
まず実行してpackage.json
ファイルにNodeJS GCSクライアントライブラリの依存関係を追加します。
その後すべてのファイル一覧表示するにはあなたのコードにこれを追加します。この意志
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
で/
を末尾に持つルートパスの下にディレクトリのリストを返します。
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);
:このコードを使用
foo/
ディレクトリの下にディレクトリのみを一覧表示するには