在 GitHub 上编辑

dvc.api.get_url()

返回一个在 DVC 项目 中被追踪的数据文件或目录的存储位置 URL。

def get_url(path: str,
            repo: str = None,
            rev: str = None,
            remote: str = None,
            remote_config: dict = None,
            config: dict = None) -> str

有关如何使用这些参数的示例,请参见 dvc.api.open()

用法

import dvc.api

resource_url = dvc.api.get_url(
    'get-started/data.xml',
    repo='https://github.com/iterative/dataset-registry'
)
# resource_url is now "https://remote.dvc.org/dataset-registry/a3/04afb96060aad90176268345e10355"

描述

返回指定文件或目录(由其在 repoDVC 项目)中的 path 确定)在存储位置(DVC remote)中的 URL 字符串。

该 URL 是通过读取项目的 远程配置,以及包含给定 pathdvc.yaml.dvc 文件(outs 字段)生成的。返回的 URL 的模式取决于 remote存储类型(参见 参数 部分)。

如果目标是一个目录,返回的 URL 将以 .dir 结尾。更多关于 DVC 如何处理数据目录的信息,请参考 缓存目录结构dvc add

此函数不会检查文件或目录是否实际存在于远程存储中。

获得资源的 URL 后,可以使用适当的库(如 boto3paramiko)直接下载该资源。

参数

  • path(必需)— 目标的位置和文件名,相对于项目根目录(repo)。

  • repo — 指定 DVC 项目的所在位置。可以是 URL 或文件系统路径。在线 Git 仓库支持 HTTP 和 SSH 协议(例如 [user@]server:project.git)。默认值:当前项目(从当前工作目录向上查找确定)。

  • rev — Git 提交(任何版本,如分支、标签名称、提交哈希或实验名称)。如果 repo 不是 Git 仓库,则忽略此选项。默认值None(将使用当前工作树)

  • remote — 用于生成返回 URL 字符串的 DVC remote 名称。默认值:使用 repo默认 remote

  • remote_config — 传递给 DVC 远程存储的配置选项字典。可用于例如向 remote 提供凭据。

  • config — 传递给 DVC 项目的 [config] 字典。它将与现有项目配置合并,可用于例如添加一个全新的 remote

异常

  • dvc.exceptions.NoRemoteError — 找不到 remote

示例:获取被 DVC 跟踪文件的 URL

import dvc.api

resource_url = dvc.api.get_url(
    'get-started/data.xml',
    repo='https://github.com/iterative/dataset-registry',
)
print(resource_url)

上述脚本输出

https://remote.dvc.org/dataset-registry/a3/04afb96060aad90176268345e10355

该 URL 表示数据的存储位置,是通过读取相应的 .dvc 文件(get-started/data.xml.dvc)生成的,其中存储了 md5 文件哈希,

outs:
  - md5: a304afb96060aad90176268345e10355
    path: get-started/data.xml

以及项目配置文件(.dvc/config),其中保存了远程 URL:

['remote "storage"']
url = https://remote.dvc.org/dataset-registry
内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天