3

我开发的应用程序基本上允许用户上传内容并存储在 Azure Blob Storage 中。

由于内容的性质是用户之间的快速共享,所以很多内容在一段时间后很快就变得不被触动了。但是对于某些内容可以反复使用。

为了阻止 blob 存储空间的空前增长,我打算编写一个工具,该工具基本上可以找到任何一段时间内未使用的 blob 并将它们从存储中删除。

如果它是标准文件系统,我可以使用“上次访问时间”来指示上次使用文件的时间。但是,我似乎找不到 blob 的类似属性来确定上次访问时间。

那么有没有人遇到过这种情况,实现这一目标的最佳方法是什么?还是我太在意这个?

非常感谢任何反馈或建议。

提前谢谢你。

4

5 回答 5

5

我只能看到两种处理方式:

  1. 在访问 blob 之前,他们必须访问服务以获取带有 SAS 签名的 blob URL。通过这种方式,您可以计算和监控哪些 blob 正在被访问。删除一段时间后访问权限低/无访问权限的旧 blob。这需要关闭公共访问,这样人们就不能绕过您的 SAS 签名。
  2. 打开存储分析并监控 GET 请求。例如,您必须解析一个月的所有 GET 访问($logs 每小时更新一次)并按资源分组。如果您将其自动化,那就不会太糟糕了。这将为您提供已访问的所有资源的列表。
于 2012-08-24T13:58:01.017 回答
1

由于该功能处于预览状态,因此现在可以通过法国中部、加拿大东部和加拿大中部的 Lifecyle Management 获得此功能。

在此处输入图像描述

更多细节在这里

于 2020-09-18T10:47:32.607 回答
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

于 2015-08-31T16:34:36.250 回答
-1

现在,使用 Azure Blob 存储对生命周期管理的支持变得更加简单。

编辑:正如所指出的,Blob 存储生命周期管理仅允许基于上次修改日期而不是上次访问日期设置规则。

管理 Azure Blob 存储生命周期

Azure Blob 存储生命周期管理为 GPv2 和 Blob 存储帐户提供了丰富的、基于规则的策略。使用该策略将您的数据转换到适当的访问层或在数据生命周期结束时过期。

生命周期管理策略允许您:

  • 将 blob 转换到较冷的存储层(热到冷、热到归档或冷到归档)以优化性能和成本
  • 在生命周期结束时删除 blob
  • 定义要在存储帐户级别每天运行一次的规则 将规则应用于容器或 Blob 子集(使用前缀作为筛选器)

Azure 生命周期管理规则

于 2019-08-01T09:09:34.420 回答
-2

您可以使用块和页面 blob Properties.LastModifiedUtc 来获取上次修改日期。对于页面或块 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.
于 2012-08-24T01:37:12.590 回答