Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FirebaseStorage:使用node.js删除文件夹及其所有内容_Javascript_Firebase_Google Cloud Storage_Firebase Admin - Fatal编程技术网

Javascript FirebaseStorage:使用node.js删除文件夹及其所有内容

Javascript FirebaseStorage:使用node.js删除文件夹及其所有内容,javascript,firebase,google-cloud-storage,firebase-admin,Javascript,Firebase,Google Cloud Storage,Firebase Admin,我想使用node.js/Firebase Admin SDK删除Firebase存储文件夹及其所有内容,但无法删除 大约一年前,谷歌集团在下面提出了一个类似的问题,我想知道现在是否有解决方案: 我可以使用node.js删除单个文件,示例如下: 但我无法删除文件夹及其所有内容 有什么想法吗?我错过什么了吗 这是我正在使用的代码 const keyFilename="path/to/my/private.json"; const projectId = "myprojectid"; const

我想使用node.js/Firebase Admin SDK删除Firebase存储文件夹及其所有内容,但无法删除

大约一年前,谷歌集团在下面提出了一个类似的问题,我想知道现在是否有解决方案:

我可以使用node.js删除单个文件,示例如下:

但我无法删除文件夹及其所有内容

有什么想法吗?我错过什么了吗

这是我正在使用的代码

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));
-- 这不是一些成员标记的欺骗

我的问题是针对node.js的,给出的答案是针对Java的

更新

我在谷歌云网站上找到了这个页面,在那里他们展示了一种删除目录(文件夹)下所有文件的方法

但是我仍然无法从中删除文件夹本身

您只能删除整个bucket,但不能删除文件夹 在桶里

使用
GcsService
删除文件或文件夹

字符串bucketName=“bucketName.appspot.com”


您不能以编程方式执行此操作。阅读dup上的答案,了解为什么云存储桶中实际上没有任何“文件夹”。目前,删除某个位置下所有文件的唯一方法是使用gsutil命令行。虽然这些都是Swift问题,但答案是适用的,并且包含回答该问题的非常好的信息:从2019年7月起,您可以列出一个文件夹,并递归删除其内容,请参见我的答案:
bucket.deleteFiles({
  prefix: 'images/'
}, function(err) {
  if (!err) {
    // All files in the `images` directory have been deleted.
  }
});
GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
gcsService.delete(new GcsFilename(bucketName, "test"));