Firebase 存储:是不是可以自动删除旧文件?

Posted

技术标签:

【中文标题】Firebase 存储:是不是可以自动删除旧文件?【英文标题】:Firebase Storage: Is it possible to auto - delete old files?Firebase 存储:是否可以自动删除旧文件? 【发布时间】:2018-09-27 00:13:27 【问题描述】:

我使用 Firebase 云存储上传图片。

我正在开发的应用程序允许用户互相发送图像(聊天),这样一个用户上传照片,另一个用户下载它,一旦下载,它应该从存储中删除。

我所说的例子

用户 A 通过将照片上传到 Firebase 存储来向用户 B 发送照片,然后用户 B 注意到用户 A 向他发送了一张图片并决定下载它,在用户 B 下载图片后,它应该从存储中删除。

我的问题

如果用户 A 发送了太多图像而用户 B 从未下载任何这些图像怎么办。那么这意味着我将以占用空间的无用图像结束。

那么在这种情况下,firebase 中是否有办法在 (n) 时间后(不是客户端)上传文件后自动删除文件?

【问题讨论】:

你好像在找Firebase Cloud Functions @AndréKool 如何使用函数做到这一点? 我不知道。我发布了那个链接,所以你可以自己找到。 【参考方案1】:

我仍在进行这项研究,但您似乎可以使用life cycle rules 根据文件的年龄删除文件。

以下是文档介绍中列出的一些示例。

将超过 365 天的对象的存储类别降级为 冷线存储。 删除 2013 年 1 月 1 日之前创建的对象。 在存储桶中仅保留每个对象的 3 个最新版本 启用版本控制

【讨论】:

您还可以在文件创建 X 天后使用生命周期删除文件。我已经测试过了,它可以工作。 我是怎么做到的? 我最终为每个文件构建了数据库模型,并在删除数据库条目时删除了该文件 - 使用 firebase/firestore 的 onDelete 挂钩。这很灵活,因为您可以根据属性轻松查询数据库模型并删除它们。

以上是关于Firebase 存储:是不是可以自动删除旧文件?的主要内容,如果未能解决你的问题,请参考以下文章

我的 mercurial 存储库太大,我需要删除旧的提交。是不是可以?

核心数据迁移:除了少数特定对象之外,是不是可以删除旧存储?

从 svn 服务器中删除旧版本

Firebase存储文件夹删除[重复]

从firebase android中删除自动关键节点

更新 Firebase 时从 ListView 中删除旧条目