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

使用DVC与Azure Blob Storage时二次push后Blob被删除的疑问

问题:DVC推送到Azure Blob Storage后重复push导致Blob标记为已删除?

我使用DVC(Data Version Control)将Azure Blob Storage作为远程存储,连接正常。添加两个文件后执行dvc push,Blob成功出现在Azure存储容器中;但再次执行dvc push后,这些Blob变为“已删除”状态,仅在Azure存储容器UI开启“显示已删除Blob”时可见。

DVC版本信息

dvc version
DVC version: 3.42.0 (pip)
-------------------------
Platform: Python 3.9.12 on Windows-10-10.0.19045-SP0
Subprojects:
        dvc_data = 3.8.0
        dvc_objects = 3.0.6
        dvc_render = 1.0.1
        dvc_task = 0.3.0
        scmrepo = 2.0.4
Supports:
        azure (adlfs = 2023.12.0, knack = 0.11.0, azure-identity = 1.15.0),
        http (aiohttp = 3.9.1, aiohttp-retry = 2.8.3),
        https (aiohttp = 3.9.1, aiohttp-retry = 2.8.3)
Config:
        Global: C:\Users\*****\AppData\Local\iterative\dvc
        System: C:\ProgramData\iterative\dvc
Cache types: hardlink
Cache directory: NTFS on C:\
Caches: local
Remotes: azure
Workspace directory: NTFS on C:\
Repo: dvc, git

DVC配置信息

remote.myremote.url=azure://container/datasets
remote.myremote.version_aware=true
remote.myremote.account_name=storageacc
core.remote=myremote
core.autostage=true
remote.myremote.connection_string=***
remote.myremote.account_key=***

解答

这是**版本感知存储(version_aware=true)**开启后的预期行为,不是Bug。

当你开启version_aware=true时,DVC会利用Azure Blob的版本管理功能跟踪数据文件版本。重复执行dvc push时,DVC会检查远程存储中是否已存在相同哈希的文件:

  • 如果已存在,DVC会将旧版本Blob标记为软删除(仅在开启“显示已删除Blob”时可见),保留最新版本;
  • 但由于文件哈希未变,内容实际没有差异,这个操作是DVC维护版本一致性的机制,不会影响你通过DVC拉取或使用这些数据。

如果不需要这种版本管理行为,可将对应配置改为false:

dvc config remote.myremote.version_aware false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:00:04