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

如何用Python实现Azure Blob存储的15天前文件条件删除

实现Azure Blob存储中过期文件的自动删除脚本

核心思路

要按创建时间删除Blob,关键是获取每个Blob的创建时间,再与当前时间对比,筛选出超过15天的Blob执行删除操作。Azure Blob的创建时间存储在Blob对象的properties.creation_time属性中。

完整实现代码

from azure.storage.blob import ContainerClient
from datetime import datetime, timedelta

# 替换为你的存储账户信息
connection_string = "你的连接字符串"
container_name = "你的容器名称"
# 过期天数阈值
expire_days = 15

# 初始化容器客户端
container_client = ContainerClient.from_connection_string(conn_str=connection_string, container_name=container_name)

# 获取当前UTC时间
current_time = datetime.utcnow()

# 遍历容器内所有Blob
for blob in container_client.list_blobs():
    # 获取Blob创建时间(UTC时区)
    creation_time = blob.properties.creation_time
    # 统一时区后计算时间差
    time_diff = current_time - creation_time.replace(tzinfo=None)
    # 判断是否超过过期天数
    if time_diff > timedelta(days=expire_days):
        # 删除Blob
        container_client.delete_blob(blob=blob.name)
        print(f"已删除过期Blob: {blob.name}")

关键代码说明

  • container_client.list_blobs():遍历容器内所有Blob对象,包含每个Blob的完整属性信息。
  • blob.properties.creation_time:获取Blob的创建时间(默认UTC时区),需与当前UTC时间对比避免时区误差。
  • datetime.utcnow():获取当前UTC时间,和Blob创建时间统一时区后计算差值。
  • timedelta(days=expire_days):定义过期时间阈值,这里设置为15天,可按需调整。

注意事项

  1. 确保你的Azure存储账户连接字符串拥有Blob删除权限。
  2. 原代码存在参数错误(比如container_name赋值错误、blob_name未闭合引号),请替换为实际的容器名称和正确参数。
  3. 建议先在测试环境验证脚本逻辑,确认筛选和删除行为符合预期后再在生产环境执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:25:16