【发布时间】:2016-11-04 11:09:11
【问题描述】:
我需要存储一些临时文件可能需要 1 到 3 个月。只需要保留最近三个月的档案。旧文件需要删除。如何在 azure blob 存储中执行此操作?在这种情况下,除了 blob 存储还有其他选择吗?
【问题讨论】:
我需要存储一些临时文件可能需要 1 到 3 个月。只需要保留最近三个月的档案。旧文件需要删除。如何在 azure blob 存储中执行此操作?在这种情况下,除了 blob 存储还有其他选择吗?
【问题讨论】:
恕我直言,在 Azure 中存储文件的最佳选择是 Blob 存储或文件存储,但它们都不支持内容自动过期(基于年龄或其他一些标准)。
早在 Blobs 存储中就已请求此功能,但遗憾的是,到目前为止尚未取得任何进展 (https://feedback.azure.com/forums/217298-storage/suggestions/7010724-support-expiration-auto-deletion-of-blobs)。
但是,您可以自己编写一些东西来实现这一点。这非常简单:定期(比如一天一次)您的程序将获取 blob 列表并将 blob 的最后修改日期与当前日期进行比较。如果 blob 的最后修改日期早于所需的时间段(如您提到的 1 或 3 个月),您只需删除 blob。
您可以使用WebJobs、Azure Functions 或Azure Automation 来安排您的代码定期运行。事实上,如果你想使用Azure Automation Service:https://gallery.technet.microsoft.com/scriptcenter/Remove-Storage-Blobs-that-aae4b761,你可以使用现成的代码。
【讨论】:
据我所知,Azure Blob 是一种适合您存储一些临时文件的方法。对于您的方案,我假设您没有用于删除旧文件的内置选项,您需要以编程方式或手动删除临时文件。
对于一种简单的方法,您可以尝试以特定格式(例如https://<your-storagename>.blob.core.windows.net/containerName/2016-11/fileName 或https://<your-storagename>.blob.core.windows.net/2016-11/fileName)上传您的blob(文件),然后您可以通过Microsoft Azure Storage Explorer 手动管理您的文件。
此外,您可以在上传新的临时文件之前检查您的文件并删除旧文件。有关详细信息,您可以关注 storage-blob-dotnet-store-temp-files 并覆盖方法 CleanStorageIfReachLimit 来实现删除 blob(文件)的逻辑。
此外,您可以利用预定的Azure WebJob 来清理您的 blob(文件)。
【讨论】:
您可以使用 Azure Cool Blob 存储。
它比 Blob 存储便宜,更适合归档。
您可以以较低的存储成本(在某些地区低至每 GB 0.01 美元)将访问频率较低的数据存储在冷访问层中,并将访问频率较高的数据以较低的访问成本存储在热访问层中。
这是一个解释其功能的文档:
https://azure.microsoft.com/en-us/blog/introducing-azure-cool-storage/
【讨论】: