使用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
之外,还有其他两种方法可以执行此操作。
-
使用
googleapis
包来访问gcs的标准JSON API和XML API。googleapis
是一个较低级的API工具,它包括与谷歌云服务交互。我们可以在gcs上创建/列出/删除文件。文档和示例: 使用
childe_process
执行gsutil
条命令行工具。这不是编程访问google api的标准方式,但仍然是一个可行的解决方案。发布命令时允许使用Widcard。请注意,这可能不适用于谷歌应用程序引擎。这是一个例子。
的NodeJS
var exec = require('child_process').exec;
exec("gsutil rm gs://[bucketname]/[directory ]/*" , function(error,stdout,stderr){});
斯蒂芬建议的,使用标准的方法gcloud
和bucket.getFiles
bucket.deleteFiles
是最可取的办法。由于gcs不具有目录的概念,因此显然应该将多个文件的操作视为一个桶级操作。
我试图用我的gsutil火力地堡云职能中的解决方案,我得到以下错误: 的gsutil:找不到 有没有对谷歌服务安装gsutil,一个方法是什么? – Thomas