使用nodejs gcloud api删除Google云端存储中的文件夹
我正在使用gcloud nodejs api
访问Google云端存储。 我可以单独保存/删除/存在文件,但我没有find一种方法来删除文件夹,甚至使用gcloud nodejs api
列出文件夹中的文件。
我见过有人说GCS中的文件夹层次结构不是一个真正的树结构,而只是名字。 所以我试图使用通配符匹配文件名string,这没有成功。
我想知道有没有办法做到这一点。 如果不是,我应该使用什么工具?
在目录中列出文件的代码应该如下所示:
bucket.getFiles({ prefix: 'directoryName/' }, function(err, files) {})
并删除:
bucket.deleteFiles({ prefix: 'directoryName/' }, function(err) {})
- getFiles API文档
- deleteFiles API文档
除了使用gcloud nodejs api
,还有其他两种方法可以做到这一点。
-
使用
googleapis
包来访问gcs的标准JSON API和XML API。googleapis
是一个较低级的API工具,其中包括与谷歌云服务交互。 我们可以在gcs上创build/列出/删除文件。 文档和示例: -
使用
childe_process
来执行gsutil
行工具。 这不是编程访问谷歌API的标准方式,但仍然是一个可行的解决scheme。发出命令时允许使用WILD卡。 请注意,这可能不适用于谷歌应用程序引擎。 这是一个例子。
的NodeJS
var exec = require('child_process').exec; exec("gsutil rm gs://[bucketname]/[directory ]/*" , function(error,stdout,stderr){});
正如Stephen所说,使用标准的gcloud
方法bucket.getFiles
和bucket.deleteFiles
是最理想的方法。 由于gcs没有目录的概念,显然多个文件的操作应该被视为一个桶级操作。
- 从谷歌存储的Firebase下载云function
- 使用NodeJS在本地上传文件到Google Cloud存储
- 同样的Google云端存储上传脚本可以在一台电脑上运行,但是不能运行,为什么?
- 谷歌云存储对象删除谷歌API,Node.js和request.del()
- 如何使用Node.js将base64编码图像(string)直接上传到Google Cloud Storage存储桶?
- Google云应用引擎重启function无法正常工作
- 如何从服务器上的客户端JavaScript上载到Google云端存储?
- 在通过file.createWriteStream()传输到GCP时,获取ESOCKETTIMEOUT,ECONNRESET或套接字会挂载大文件。
- 从Google云端存储中读取图片,并使用Google云端function进行发送