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

时间:2016-07-26 18:55:01

标签: node.js google-cloud-storage gcloud-node

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

并删除:

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

答案 1 :(得分:1)

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

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

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

  3. 的NodeJS

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

    正如Stephen建议的那样,使用标准gcloud方法bucket.getFilesbucket.deleteFiles是最理想的方法。由于gcs不具有目录的概念,因此显然应该将多个文件的操作视为桶级操作。