Cloud Functions 删除文件夹:TypeScript
Posted
技术标签:
【中文标题】Cloud Functions 删除文件夹:TypeScript【英文标题】:Cloud Functions Delete a Folder: 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'
。
如何删除文件夹??
【问题讨论】:
【参考方案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/
开头的文件。一旦你这样做了,文件夹也消失了。
另见:
How to get a list of files in a Google Cloud Storage folder using Node.js?(关于如何使用 Node.js for Cloud Storage 获取文件夹中的文件列表) How to get a list of all files in Cloud Storage in a Firebase app?(Firebase SDK 没有列出文件的 API)【讨论】:
以上是关于Cloud Functions 删除文件夹:TypeScript的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Cloud Functions 在写入后立即删除数据
使用 Cloud Functions for Firebase 和 @google-cloud/storage 删除图像时出现问题
Firebase Cloud Functions 部署错误 - 超出配额
Cloud Functions for Firebase 在午夜运行
Google Cloud Functions 部署:EROFS:只读文件系统
如何通过 Cloud Functions 将文件上传到 Cloud Storage 并使用 Firestore 控制对 Cloud Storage 的访问?