本文可帮助你确定何时启用软删除、版本控制或两者均未启用。
Blob 软删除和 Blob 版本控制都有助于防止删除和覆盖。 这些功能可以独立使用,也可以一起使用,具体取决于工作负荷、成本敏感度和恢复需求。 若要了解保护 Blob 和容器的其他方法,请参阅 数据保护概述。
我们的建议
对于存储关键数据的 Blob 存储客户,应启用软删除和版本控制,以提供分层保护,防止意外删除和覆盖。 软删除可确保数据在可配置的天数内保持可恢复状态。 Blob 版本控制为管理以前的版本和恢复选项提供了更大的灵活性,例如能够读取以前的版本,并从元数据或属性更改中恢复。 请参阅以下详细信息,了解适合你的内容。
功能概述
| 功能 | 防护 | 保留期 | 存储行为 | 分层命名空间 (HNS) 注意事项 | 
|---|---|---|---|---|
| 软删除 | 对平面命名空间帐户进行删除和覆盖。 删除属于分层命名空间的帐户。 | 最多 365 天(可配置) | 为每次覆盖创建一个被软删除的快照。 对每个删除操作创建一个软删除的 Blob 存储对象。 | 软删除仅保护已启用 HNS 的帐户的删除操作。 使用 “设置 Blob 过期 API”时,无法使用 Blob 软删除功能还原过期的文件。 | 
| 版本控制 | 对平面命名空间帐户进行删除和覆盖。 | 无限期(直到明确删除) | 每次写入时创建一个新版本。 | 版本控制不适用于已启用 HNS 的帐户。 | 
注释
这两个功能默认处于禁用状态,必须在存储帐户级别启用。
何时使用软删除
              
               
              
              
            
启用软删除(如果:)
- 你希望恢复那些意外删除或被覆盖的 blob。 对于启用了分层命名空间的帐户,软删除仅保护删除,而不防止覆盖。
- Blob 恢复需要一个与保留天数设置相等的限时安全网。
注意事项
- 每次覆盖操作都会创建一个软删除快照。 Blob 软删除不会防范对 Blob 元数据或属性的写入操作。
- 在每次删除操作中都会创建一个软删除的 Blob。 每个软删除的 Blob 在操作时按 Blob 的全部大小计费。
- 避免在保留期内超过 每个 Blob 的 1,000 个软删除快照,以防止 Blob 列出操作期间性能下降。
- 保留期限制为 最多 365 天。
- 如果启用了软删除,则在软删除保留过期之前,无法永久删除。 所有删除操作都是“软删除”,当保留期限到期后,软删除的 Blob 将被永久删除。
- 如果禁用软删除,则所有删除都是永久性的,但现有的软删除数据将保留到保留期到期。
- 软删除 Blob 的内容无法通过读取 API 进行访问。 若要访问数据,必须先取消删除 Blob。
何时使用版本控制
              
               
              
              
            
如果需要,请启用版本管理:
- 您要保留 Blob 更改的完整历史记录。 在版本控制中,执行覆盖和删除操作会生成先前版本。 删除会删除当前版本,但以前的版本仍保留。 
- 你想要将元数据和属性的更改保存为以前的版本。 
- 需要长期或无限期保留以前的 Blob 状态。 
- 你希望保持对以前版本的快速访问,而无需取消删除。 
注意事项
- 每个写入作(放置 Blob、放置块列表、设置 Blob 元数据 和 复制 Blob) 都会创建 Blob 的新版本。 
- 版本会保留至被显式删除,提供长期的恢复选项。 
- 避免 每个 Blob 超过 1,000 个版本,以保持最佳性能,避免在 Blob 列表操作期间性能下降。 
- 可以随时删除特定版本。 要删除当前版本和以前的版本,需要不同的角色分别承担这些任务。 这种分离有助于避免错误。 相同的身份可以被分配这两个角色。 了解详细信息。 
- 可以 配置生命周期管理策略 来控制版本的生命周期并定义保留条件。 
- 版本控制不适用于启用了分层命名空间的帐户。 
何时使用两者
启用软删除和版本管理如果:
- 需要全面的保护,以防止意外删除和意外覆盖。
- 在要求分层数据保护的受监管环境中运行。
- 即使删除了版本,也希望确保恢复选项。
- 你想要创建宽限期,其中,在删除以前的版本时,它们会保留一段时间(软删除保留期)。
注意事项
- 启用版本控制后,删除当前版本会使其成为以前的版本。 启用软删除后,删除以前的版本会使其成为软删除的以前版本。 (了解详细信息) 
- 软删除保留仅适用于删除以前的版本。 
- 避免 每个 Blob 超过 1,000 个版本,以保持最佳性能,避免在 Blob 列表操作期间性能下降。 
- 每个功能以不同的方式保留数据。 可以为版本控制和软删除设置不同的保留期,以平衡数据丢失的成本和风险。 
何时使用“neither”
您可能会选择禁用这两项功能,如果:
- 应用程序有自己的备份和恢复机制。
- 你具有严格的成本限制和意外数据丢失的风险较低。
- 数据是临时数据或测试数据,不需要保护。
删除后的 Blob 可访问性
无论是在帐户上启用软删除、版本控制还是两者都启用,本部分介绍如何在删除 Blob 后访问数据。
如果启用了版本控制,则必须指定版本 ID 才能读取以前的版本。 使用复制 Blob操作来将以前的版本复制到新的当前版本。
如果启用了软删除,则必须取消删除 Blob对象。
如果启用了版本控制和软删除,并且要访问的以前版本已被软删除,则需要先还原 Blob。 Undelete Blob操作始终会还原该 Blob 的所有软删除版本。 然后,可以使用 复制 Blob 操作将以前的版本复制到新的当前版本。
成本注意事项
为频繁覆盖的数据启用软删除或版本控制可能会导致存储容量费用增加,列出 Blob 时延迟增加。 使用 Put Block 和 Put Block List 的 块级更新可以降低存储成本。 如果您未对 Blob、其版本或快照的层级进行任何更改,则会针对该 Blob、其版本和快照的唯一数据块进行计费。 在永久删除 Blob、版本和快照之前,会对活动数据进行计费。 了解详细信息