我开发的应用程序基本上允许用户上传内容并存储在Azure Blob存储中。
由于内容的性质是用户之间的快速共享,因此许多内容在一段时间后很快就会变得不受影响。但是对于某些内容可以反复使用。
为了阻止blob存储空间大小的空前增长,我计划编写基本上找不到一段时间未使用的blob的工具,并将其从存储中删除。
如果是标准文件系统,我可以使用“上次访问时间”来指示上次使用文件的时间。但是,我似乎无法找到blob的类似属性来确定上次访问时间。
所有人都遇到过这种情况,实现这一目标的最佳方法是什么? 还是我太在意这个了?
非常感谢任何反馈或建议。
先谢谢你。
答案 0 :(得分:4)
我只能看到两种处理方法:
答案 1 :(得分:0)
如果您正在使用Blob存储,那么遵循Gaurav建议的方法是您的最佳选择。有关入门的文档,请参阅此处:
https://azure.microsoft.com/en-us/documentation/articles/storage-analytics/。
请注意,我们的.NET客户端库确实包含对解析日志文件的支持 - 您可以在我们的客户端库单元测试中看到此演示:
https://github.com/Azure/azure-storage-net/search?utf8=%E2%9C%93&q=ListLogs
答案 2 :(得分:0)
借助Azure Blob存储对生命周期管理的支持,这现在变得更加简单。
Manage the Azure Blob storage lifecycle
Azure Blob存储生命周期管理提供了基于规则的丰富功能 GPv2和Blob存储帐户的策略。使用政策 将您的数据转移到适当的访问层或在 数据生命周期的结束。
生命周期管理策略可让您:
- 将blob过渡到较冷的存储层(从热到酷,从热到存档或从酷到存档)以优化性能和成本
- 在生命周期结束时删除Blob
- 定义规则,每天在存储帐户级别运行一次,将规则应用于容器或blob的子集(使用前缀作为过滤器)
答案 3 :(得分:0)
答案 4 :(得分:-2)
您可以使用块和页面blob Properties.LastModifiedUtc来获取上次修改日期。使用Page或Block blob,您需要使用GetBlockBlobReference或GetPageBlobReference API以及FetchAttributes()来获取blob引用,然后您可以查找LastModifiedUtc。
例如,使用Block blob,这里是代码片段:
CloudBlockBlob blockBlob = container_name.GetBlockBlobReference(uri.ToString());
blockBlob.FetchAttributes();
// blockBlob.Properties.LastModifiedUtc will return the last modified date for the blob.