我有一些文件和文件夹存储在gcs中。我想获取所有给定特定目录的文件和文件夹。

我已经设法通过使用定界符和前缀来获取目录内的所有文件。但是响应是排除了我也想获得的子目录。

  const prefix = `users/${currentUserName}/`;
  const delimiter = "/";
  const options = {
    prefix: prefix
  };
  if (delimiter) {
    options.delimiter = delimiter;
  }

  const [files] = await gcStorage.bucket(bucketName).getFiles(options);


我得到类似的输出:


用户/ kaisar /
用户/kaisar/Attendance.docx
users / kaisar / SampleAudio_0.4mb(1).mp3


我想要类似的输出:


用户/ kaisar /
用户/kaisar/Attendance.docx
users / kaisar / SampleAudio_0.4mb(1).mp3
用户/ kaisar / newFolder /
用户/ kaisar / video文件夹/

最佳答案

子目录作为响应中的CommonPrefixes返回(apiResponse.prefixes)

var query = {
  delimiter: '/'
};
bucket.getFiles(query, function(err, files, nextQuery, apiResponse) {
  // files is array of files
  // apiResponse.prefixes is the same as CommonPrefixes
});


有关示例,请参阅文档:link

10-07 21:18