云函数删除文件夹:TypeScript

时间:2018-12-01 05:45:17

标签: typescript firebase google-cloud-storage google-cloud-functions firebase-storage

我的存储桶budget-32bfc包含以下文件夹;
--+ Folder1 --+ Folder2 --+ Folder3

我要从云功能中删除 Folder1

尝试1:

gcs.bucket("budget-32bfc").file('Folder1').delete().then(() => {
        console.log("Folder Deleted");
    }).catch(function (error) {
        console.log("Error listing users:", error);
    });

尝试2:

admin.bucket("budget-32bfc").file('Folder1').delete().then(() => {
        console.log("Folder Deleted");
    }).catch(function (error) {
        console.log("Error listing users:", error);
    });

两次尝试都给了我404 Error: 'No such object: budget-32bfc/Folder1'

如何删除文件夹?

2 个答案:

答案 0 :(得分:2)

Cloud Storage中没有“文件夹”的概念,它只是每个文件名的一部分。因此,您将必须删除所有以Folder1/开头的文件。完成后,该文件夹也将消失。

另请参阅:

答案 1 :(得分:1)

1.7.x版具有以下返回Promise的方法:

  

deleteFiles(查询,回调)

它将尝试删除指定文件夹内的每个文件(文件夹也是如此)。如果删除一个文件失败,该过程将停止。 (使用'force:true'覆盖此行为)。

bucket.deleteFiles({
    prefix: `${userId}/images`
})
.catch( (err) => {
    console.log(`Failed to delete all images of user ${userId}`);
});

官方文档:Storage - deleteFiles

在此处找到另一种解决方案:click

(注意:我无法将此线程标记为重复,因为我只有13个代表点,请停止删除我的评论,因为其他人可能需要查看此内容,谢谢)