使用nodejs gcloud api删除Google云端存储中的文件夹

我正在使用gcloud nodejs api访问Google云端存储。 我可以单独保存/删除/存在文件,但我没有find一种方法来删除文件夹,甚至使用gcloud nodejs api列出文件夹中的文件。

我见过有人说GCS中的文件夹层次结构不是一个真正的树结构,而只是名字。 所以我试图使用通配符匹配文件名string,这没有成功。

我想知道有没有办法做到这一点。 如果不是,我应该使用什么工具?

在目录中列出文件的代码应该如下所示:

 bucket.getFiles({ prefix: 'directoryName/' }, function(err, files) {}) 

并删除:

 bucket.deleteFiles({ prefix: 'directoryName/' }, function(err) {}) 
  • getFiles API文档
  • deleteFiles API文档

除了使用gcloud nodejs api ,还有其他两种方法可以做到这一点。

  1. 使用googleapis包来访问gcs的标准JSON API和XML API。 googleapis是一个较低级的API工具,其中包括与谷歌云服务交互。 我们可以在gcs上创build/列出/删除文件。 文档和示例:

  2. 使用childe_process来执行gsutil行工具。 这不是编程访问谷歌API的标准方式,但仍然是一个可行的解决scheme。发出命令时允许使用WILD卡。 请注意,这可能不适用于谷歌应用程序引擎。 这是一个例子。

的NodeJS

 var exec = require('child_process').exec; exec("gsutil rm gs://[bucketname]/[directory ]/*" , function(error,stdout,stderr){}); 

正如Stephen所说,使用标准的gcloud方法bucket.getFilesbucket.deleteFiles是最理想的方法。 由于gcs没有目录的概念,显然多个文件的操作应该被视为一个桶级操作。