使用nodejs gcloud api删除谷歌云存储中的文件夹



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

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

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

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

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上创建/列出/删除文件。文档和示例:

    • https://cloud.google.com/storage/docs/json_api/v1/objects/delete
    • https://cloud.google.com/storage/docs/json_api/v1/objects/list
  2. 使用childe_process执行gsutil命令行工具。这不是用程序访问googleapi的标准方式,但仍然是一个可行的解决方案。发出命令时允许使用通配符。请注意,这可能不适用于谷歌应用程序引擎。下面是一个例子。

Nodejs

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

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

相关内容

  • 没有找到相关文章

最新更新