我想使用node.js / Firebase Admin SDK删除Firebase存储文件夹及其所有内容,但我无法删除。
大约一年前,谷歌小组提出了类似的问题,我想知道现在是否有解决方案:
https://groups.google.com/forum/#!topic/firebase-talk/aG7GSR7kVtw
我可以使用下面的node.js示例删除单个文件:
https://mzmuse.com/blog/how-to-upload-to-firebase-storage-in-node
但是我无法删除文件夹及其所有内容。
有什么想法吗?我错过了什么吗?
这是我正在使用的代码
const keyFilename="path/to/my/private.json";
const projectId = "myprojectid";
const bucketName = `${projectId}.appspot.com`;
const gcs = require('@google-cloud/storage')({
projectId,
keyFilename
});
const bucket = gcs.bucket(bucketName);
这项工作很精细 - 删除单个文件
const deleteFile = 'users/user1/folder1/IMG_1.JPG'
const gcFile = bucket.file(deleteFile);
gcFile.delete((err,res)=>console.log(err||res));
这不起作用 - 删除文件夹和内容
const deleteFolder = 'users/user1/'
const gcFolder = bucket.file(deleteFolder);
gcFolder.delete((err,res)=>console.log(err||res));
这不是某些会员标记的DUPE
我的问题特定于node.js,给出的答案是针对Java。
更新
我在谷歌云站点找到了一个页面,它们显示了删除目录(文件夹)下所有文件的方法
bucket.deleteFiles({
prefix: 'images/'
}, function(err) {
if (!err) {
// All files in the `images` directory have been deleted.
}
});
但我仍然无法删除文件夹
答案 0 :(得分:1)
您只能删除整个存储桶,但无法删除文件夹 在桶里。
使用GcsService
删除文件或文件夹。
String bucketName =" bucketname.appspot.com&#34 ;;
GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
gcsService.delete(new GcsFilename(bucketName, "test"));