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

问题描述:

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

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

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

列出目录中的文件应该是这个样子的代码:

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

并删除:

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

除了使用gcloud nodejs api之外,还有其他两种方法可以执行此操作。

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

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

的NodeJS

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

斯蒂芬建议的,使用标准的方法gcloudbucket.getFilesbucket.deleteFiles是最可取的办法。由于gcs不具有目录的概念,因此显然应该将多个文件的操作视为一个桶级操作。

+0

我试图用我的gsutil火力地堡云职能中的解决方案,我得到以下错误: 的gsutil:找不到 有没有对谷歌服务安装gsutil,一个方法是什么? – Thomas