如何防止blob被删除?怎样设置特定blob为不可删除状态
单个Blob设置不可删除状态的操作指南
首先明确:完全可以实现单个Blob的永久保留,禁止任何用户(包括存储账户所有者)删除、修改目标Blob,核心依赖对象存储服务的不可变存储(WORM,一次写入多次读取) 能力。
实现方案选型
根据你的保留需求二选一即可:
- 法律保留策略:无固定保留期限,开启后Blob永久不可删除/修改,支持后续手动解除保留,适合需要长期保留、后续可能有调整需求的场景
- 基于时间的保留策略:设置固定的保留时长,保留期内任何人都无法删除/修改Blob,也无法提前解除策略,适合合规类的固定期限保留需求,要接近永久保留可以把时长设为9999年
图形界面操作步骤(以Azure Blob Storage为例)
前提:你使用的存储账户需要是标准GPv2或高级块Blob存储类型,这两类才支持Blob级别的不可变策略:
- 进入存储账户控制台,定位到目标Blob所在的容器,找到需要设置的Blob
- 点击Blob右侧的
更多操作按钮,选择访问政策选项 - 在不可变策略配置区域,选择你需要的策略类型,点击启用后保存即可
命令行操作示例(Azure CLI)
如果需要自动化配置,可以直接执行以下命令:
开启单个Blob的法律保留
az storage blob immutability-policy set --account-name <存储账户名> --container-name <容器名> --name <目标Blob名称> --legal-hold true
解除单个Blob的法律保留
az storage blob immutability-policy set --account-name <存储账户名> --container-name <容器名> --name <目标Blob名称> --legal-hold false
注意事项
- Blob级别的不可变策略优先级高于容器级策略,不会被容器层面的配置覆盖
- 如果你开启了Blob版本控制功能,需要给对应版本的Blob也单独设置不可变策略,避免通过删除版本的方式移除文件
- 其他云厂商的对象存储服务(如AWS S3、阿里云OSS)也有相同能力,仅功能命名略有不同,操作逻辑基本一致
内容的提问来源于stack exchange,提问作者Subhajeet Paria
相关产品推荐
相关产品推荐

