6

我正在使用gcloud nodejs api访问 Google Cloud Storage。我可以单独保存/删除/存在文件,但我没有找到删除文件夹甚至使用gcloud nodejs api.

我看到有人说GCS中的文件夹层次结构不是真正的树形结构,而只是名称。所以我尝试使用通配符来匹配文件名字符串,但没有成功。

我想知道是否有任何方法可以做到这一点。如果不是,我应该使用什么工具?

4

2 回答 2

21

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

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

并删除:

bucket.deleteFiles({ prefix: 'directoryName/' }, function(err) {})
于 2016-07-27T18:16:38.640 回答
2

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

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

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

节点

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

正如斯蒂芬建议的那样,使用标准方法gcloud是最理想的方法。由于 gcs 没有目录的概念,对多个文件的操作显然应该被视为桶级别的操作。bucket.getFilesbucket.deleteFiles

于 2016-07-27T19:38:41.253 回答