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

如何用DVC推送外部数据到远程并直接拉取更新至原外部目录?

实现步骤与配置方案

1. 配置SSH远程存储

先在你的DVC项目中添加并配置目标SSH远程:

# 添加SSH远程(命名为ssh_remote,可自定义)
dvc remote add ssh_remote ssh://example.com/path/to/storage

# 按需配置SSH认证信息(比如指定用户名或密钥文件)
dvc remote modify ssh_remote user your_ssh_username
dvc remote modify ssh_remote keyfile ~/.ssh/id_rsa

# 可选:设为默认远程,后续命令无需重复指定远程名称
dvc remote default ssh_remote

2. 跟踪外部数据集(仅生成.dvc文件)

使用dvc add --external跟踪工作区外的目录,此操作仅在当前工作区生成.dvc文件,不会复制数据到工作区:

dvc add --external /external-to-workspace/dataset

执行后,工作区会生成dataset.dvc文件,其中outs字段指向绝对路径/external-to-workspace/dataset——这是确保拉取时直接更新原外部目录的核心配置。

3. 推送数据集版本到远程

将外部数据集的当前版本上传到SSH远程:

# 若未设默认远程,需添加参数:dvc push -r ssh_remote
dvc push

DVC会将/external-to-workspace/dataset的内容同步到ssh://example.com/path/to/storage,并通过本地.dvc文件记录版本元数据。

4. 拉取更新到原外部目录

当需要同步远程的最新版本时,直接执行:

# 若未设默认远程,需添加参数:dvc pull -r ssh_remote
dvc pull

由于.dvc文件已指定外部目录的绝对路径,DVC会直接将远程数据更新到/external-to-workspace/dataset,不会在工作区创建副本。

关键注意事项

  • 避免使用dvc import-url --to-remote:该命令设计用于导入外部URL数据到工作区,拉取时默认生成本地副本,不符合你的需求。
  • 确认.dvc文件的outs路径:如果生成的.dvc文件中outs是相对路径,手动修改为绝对路径/external-to-workspace/dataset即可。
  • 权限要求:执行命令的用户需对/external-to-workspace/dataset有读写权限,同时拥有SSH远程存储的读写权限。

内容的提问来源于stack exchange,提问作者Md Hasan Shahriar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:47:32