You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure存储:能否基于最后访问时间配置生命周期规则删除文件?

回答

原生生命周期策略实现

Azure存储(包括常规Blob存储和ADLS Gen2)原生支持基于最后访问时间的生命周期策略,可直接配置删除X天内未被访问的文件:

  • 门户配置路径:进入存储账户 → 数据管理 → 生命周期管理,添加规则时选择「基于最后访问时间」作为触发条件,设置「删除Blob」动作并指定时间阈值(如X天)。
  • 命令行/代码配置:可通过Azure CLI、PowerShell或ARM模板定义策略,示例Azure CLI命令片段:
    az storage account management-policy create --account-name <你的存储账户名> --resource-group <你的资源组> --policy '{
      "rules": [
        {
          "name": "delete-unaccessed-blobs",
          "enabled": true,
          "type": "Lifecycle",
          "definition": {
            "actions": {
              "baseBlob": {
                "delete": { "daysAfterLastAccessTimeGreaterThan": X }
              }
            },
            "filters": {
              "blobTypes": ["blockBlob"],
              "prefixMatch": ["目标容器/"] # 可选,指定需生效的容器或路径
            }
          }
        }
      ]
    }'
    
  • 注意:需确保存储账户的「最后访问时间跟踪」功能处于开启状态(默认开启,若未开启可在存储账户的「数据保护」页面启用)。

Blob API自定义实现

如果原生策略无法满足特殊逻辑需求(比如复杂过滤条件、自定义批量处理规则),可通过Blob API结合代码实现:

  1. 枚举Blob:调用List Blobs接口(或对应SDK方法)遍历目标容器内的Blob,获取每个Blob的lastAccessTime属性。
  2. 条件判断:检查lastAccessTime是否早于当前时间减去X天的阈值。
  3. 执行删除:对符合条件的Blob调用Delete Blob接口(或SDK删除方法)。
  • Python SDK示例代码:
    from azure.storage.blob import BlobServiceClient
    from datetime import datetime, timedelta
    
    connection_string = "<你的存储账户连接字符串>"
    container_name = "<目标容器名>"
    days_threshold = X
    
    blob_service_client = BlobServiceClient.from_connection_string(connection_string)
    container_client = blob_service_client.get_container_client(container_name)
    
    cutoff_time = datetime.utcnow() - timedelta(days=days_threshold)
    
    for blob in container_client.list_blobs(include='metadata'):
        if blob.last_access_time and blob.last_access_time <= cutoff_time:
            container_client.delete_blob(blob.name)
    

内容的提问来源于stack exchange,提问作者Bennimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:07:17