【问题标题】:Cloud Functions Delete a Folder: TypeScriptCloud Functions 删除文件夹:TypeScript
【发布时间】:2019-05-03 05:36:29
【问题描述】:

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

我想从 Cloud Functions 中删除 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'

如何删除文件夹??

【问题讨论】:

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


    【解决方案1】:

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

    删除文件(查询,回调)

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

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

    官方文档:Storage - deleteFiles

    在这里找到另一个解决方案:click

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

    【讨论】:

      【解决方案2】:

      Cloud Storage 中没有“文件夹”的概念,它只是每个文件名称的一部分。所以你必须删除所有以Folder1/ 开头的文件。一旦你这样做了,文件夹也消失了。

      另见:

      【讨论】: