如何用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天,可按需调整。
注意事项
- 确保你的Azure存储账户连接字符串拥有Blob删除权限。
- 原代码存在参数错误(比如
container_name赋值错误、blob_name未闭合引号),请替换为实际的容器名称和正确参数。 - 建议先在测试环境验证脚本逻辑,确认筛选和删除行为符合预期后再在生产环境执行。
内容的提问来源于stack exchange,提问作者ritwik sharma
相关产品推荐
相关产品推荐

