根据未来日期自动删除 Azure 中的 Blob 文件
Automatically delete Blob files in Azure based on a future date
我很好奇是否有一种方法可以通过设置未来的日期或时间在 Microsoft azure 中自动删除将来的 blob 文件?当设置的时间过去后,blob 文件将自动删除。我正在使用 c# ASP.NET。
Blob 永远不会删除自己。如果对象开始自我删除,那将与 Azure 的一致性和可靠性相矛盾。
我能想到的最简单的事情是设置一个 WebJob 来监视您的存储帐户并删除指定天数的 blob。或者,如果您将有关 blob 的元数据存储在您的应用程序数据库中,您可以让 WebJob 查看您的数据库并删除今天已删除的任何 blob。
如果您的站点没有任何实际压力,WebJobs 可以部署到现有的 WebApp 进程中,无需额外费用。如果您希望您的 WebApp 或 WebJob 特别忙,我会考虑将它们分开,这样它们就不会争夺资源。
There's a great blog post here 告诉您开始使用 WebJobs 所需知道的一切。
值得注意的是,WebJob 可以运行 连续地、按需、按定义的时间表响应消息队列或文件被放入 blob 存储。
没有任何机制可以仅使用 blob 存储来做到这一点。
当然,您可以编写一个服务来查询每个 blob 并在超过 TTL 时将其删除,您可以将其存储在 MetaData 中。每次读取和删除都会产生费用。
1) Microsoft azure 中无法通过设置未来日期或时间自动删除 blob 文件。
2) 为了实现你的目标,你应该创建一个小应用程序,这个应用程序可以是:
- Azure 工作者角色;
- 只是桌面应用程序;
- 其他东西(例如 asp.net 应用程序,甚至是用 Go 编写的应用程序)。
应用程序逻辑非常简单:
- 每
N
秒检查一次 blob,并删除符合的
要求(TTL结束)。
- 您可以使用 blob 属性或写入 blob(或另一个
机制)存储
born time (BT)
.
- 您可以写入 blob 或使其成为程序中的常量(或使用其他机制)来存储
TTL
。
- 当你检查 blob 时,你应该这样做:
(Current Time - BT) >
TTL
如果它是 'true' 你可以删除 blob
我很好奇是否有一种方法可以通过设置未来的日期或时间在 Microsoft azure 中自动删除将来的 blob 文件?当设置的时间过去后,blob 文件将自动删除。我正在使用 c# ASP.NET。
Blob 永远不会删除自己。如果对象开始自我删除,那将与 Azure 的一致性和可靠性相矛盾。
我能想到的最简单的事情是设置一个 WebJob 来监视您的存储帐户并删除指定天数的 blob。或者,如果您将有关 blob 的元数据存储在您的应用程序数据库中,您可以让 WebJob 查看您的数据库并删除今天已删除的任何 blob。
如果您的站点没有任何实际压力,WebJobs 可以部署到现有的 WebApp 进程中,无需额外费用。如果您希望您的 WebApp 或 WebJob 特别忙,我会考虑将它们分开,这样它们就不会争夺资源。
There's a great blog post here 告诉您开始使用 WebJobs 所需知道的一切。
值得注意的是,WebJob 可以运行 连续地、按需、按定义的时间表响应消息队列或文件被放入 blob 存储。
没有任何机制可以仅使用 blob 存储来做到这一点。
当然,您可以编写一个服务来查询每个 blob 并在超过 TTL 时将其删除,您可以将其存储在 MetaData 中。每次读取和删除都会产生费用。
1) Microsoft azure 中无法通过设置未来日期或时间自动删除 blob 文件。
2) 为了实现你的目标,你应该创建一个小应用程序,这个应用程序可以是:
- Azure 工作者角色;
- 只是桌面应用程序;
- 其他东西(例如 asp.net 应用程序,甚至是用 Go 编写的应用程序)。
应用程序逻辑非常简单:
- 每
N
秒检查一次 blob,并删除符合的 要求(TTL结束)。 - 您可以使用 blob 属性或写入 blob(或另一个
机制)存储
born time (BT)
. - 您可以写入 blob 或使其成为程序中的常量(或使用其他机制)来存储
TTL
。 - 当你检查 blob 时,你应该这样做:
(Current Time - BT) > TTL
如果它是 'true' 你可以删除 blob