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

Azure Storage Blobs 12.16.0中BlobRetentionPolicy的使用方法咨询

实现Azure Blob容器文件自动删除的C#方案(12.16.0版本)

你找到的BlobRetentionPolicy是用于不可变存储容器的保留策略,作用是强制数据在指定天数内无法被删除或修改,并非实现自动删除的功能。要让容器中的文件自动删除,需要配置Blob生命周期管理规则,以下是具体实现步骤:

核心实现代码

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

// 初始化存储账户客户端
var connectionString = "你的存储账户连接字符串";
var serviceClient = new BlobServiceClient(connectionString);

// 定义自动删除规则:删除15天前修改的块Blob(针对指定容器)
var autoDeleteRule = new BlobManagementPolicyRule(
    name: "AutoDeleteOldBlobs",
    definition: new BlobManagementPolicyDefinition(
        actions: new BlobManagementPolicyActions(
            baseBlob: new BlobBaseBlobManagementPolicyActions(
                delete: new BlobDeleteAction(
                    daysAfterModificationGreaterThan: 15
                )
            )
        ),
        filters: new BlobManagementPolicyFilters(
            blobTypes: new List<string> { "blockBlob" },
            prefixMatch: new List<string> { "你的容器名称/" } // 指定目标容器,作用于所有容器可移除该配置
        )
    )
);

// 组装生命周期策略
var policy = new BlobManagementPolicy(rules: new List<BlobManagementPolicyRule> { autoDeleteRule });

// 将策略应用到存储账户
await serviceClient.SetBlobManagementPolicyAsync(policy);

关键说明

  • 如果需要对所有容器生效,删除filters中的prefixMatch配置即可。
  • 规则中的daysAfterModificationGreaterThan参数表示Blob最后修改时间超过指定天数后触发删除。
  • 该策略是账户级配置,设置后Azure会自动后台执行清理操作。

补充:BlobRetentionPolicy的正确用途

如果你的需求是设置不可变存储(强制Blob在15天内不能被修改或删除),而非自动删除,可通过以下代码配置容器的不可变策略:

var containerClient = serviceClient.GetBlobContainerClient("你的容器名称");

var immutabilityPolicy = new BlobContainerImmutabilityPolicy(
    new BlobRetentionPolicy { Days = 15, Enabled = true }
);

await containerClient.SetImmutabilityPolicyAsync(immutabilityPolicy);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:13:14