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

如何通过编程方式设置Azure Blob Storage文件X天后自动删除

实现Azure Blob Storage文件上传时设置自动删除(无需函数/存储策略)

自定义元数据RetensionDays无法被Azure Storage自动识别执行,必须利用Blob原生的**过期时间(ExpiryTime)**属性,才能实现文件在指定天数后自动删除,无需额外Azure函数或存储生命周期策略。

核心逻辑

直接为单个Blob设置过期时间,当时间到达后,Azure Storage会自动删除该Blob,全程无需额外运维操作。

代码实现示例

.NET SDK(Azure.Storage.Blobs)

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;
using System.IO;

var storageConnString = "你的存储账户连接字符串";
var containerName = "目标容器名称";
var blobFileName = "待上传的文件名";
var retentionDays = 7; // 自定义保留天数

// 初始化Blob客户端
var blobServiceClient = new BlobServiceClient(storageConnString);
var containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(blobFileName);

// 上传文件并设置过期时间
using var fileStream = File.OpenRead("本地文件路径");
var uploadOpts = new BlobUploadOptions
{
    // 计算过期时间:当前UTC时间 + 保留天数
    ExpiresOn = DateTimeOffset.UtcNow.AddDays(retentionDays)
};

await blobClient.UploadAsync(fileStream, uploadOpts);

Python SDK(azure-storage-blob)

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

storage_conn_string = "你的存储账户连接字符串"
container_name = "目标容器名称"
blob_file_name = "待上传的文件名"
retention_days = 7

# 初始化客户端
blob_service_client = BlobServiceClient.from_connection_string(storage_conn_string)
container_client = blob_service_client.get_container_client(container_name)
blob_client = container_client.get_blob_client(blob_file_name)

# 计算UTC过期时间
expiry_time = datetime.utcnow() + timedelta(days=retention_days)

# 上传并设置过期属性
with open("本地文件路径", "rb") as file_data:
    blob_client.upload_blob(
        data=file_data,
        overwrite=True,
        expires_on=expiry_time
    )

关键注意事项

  • 过期时间必须使用UTC时间,避免时区差异导致删除时间偏差
  • 该设置仅对当前Blob生效,不会批量影响容器内其他文件
  • 已上传的Blob可通过对应SDK的修改接口调整过期时间(例如.NET的SetExpiresOnAsync方法)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:25:23