在 GitHub 上编辑

get-url

从支持的 URL(例如 s3://ssh:// 等协议)下载文件或目录到本地文件系统。

参见 dvc get,用于从其他 DVC 仓库(例如托管在 GitHub 上的仓库)下载数据/模型文件或目录。

概要

usage: dvc get-url [-h] [-q | -v] [-j <number>] [-f] [--fs-config <name>=<value>] url [out]

positional arguments:
  url            (See supported URLs in the description.)
  out            Destination path to put files in.

描述

在某些情况下,将文件或目录从远程位置下载到本地文件系统会很方便。dvc get-url 命令可帮助用户完成此操作。

请注意,与 dvc import-url 不同,此命令不会跟踪下载的数据文件(不会创建 .dvc 文件)。因此,该命令无需在现有的 DVC 项目 中运行。

url 参数应提供要下载数据的位置,而 out 可用于指定下载数据所需的目录和/或文件名。如果指定了一个已存在的目录,则文件或目录将被放置在该目录内。

请参阅 dvc list-url,了解如何浏览外部位置中的文件和目录以供下载。

DVC 支持多种类型的(本地或)远程数据源(协议):

类型描述url 格式示例
s3Amazon S3s3://bucket/data
azureMicrosoft Azure Blob 存储azure://container/data
gsGoogle Cloud Storagegs://bucket/data
sshSSH 服务器ssh://user@example.com/path/to/data
hdfsHDFS 到文件*hdfs://user@example.com/path/to/data.csv
httpHTTP 到文件*https://example.com/path/to/data.csv
webdavWebDav 到文件*webdavs://example.com/enpoint/path
webhdfsHDFS REST API*webhdfs://user@example.com/path/to/data.csv
本地本地路径/path/to/local/data

如果你通过 pip 安装了 DVC 并计划使用云服务作为远程存储,可能需要安装这些可选依赖项:[s3][azure][gs][oss][ssh]。或者,使用 [all] 来包含所有依赖项。命令应如下所示:pip install "dvc[s3]"。(此示例会随 DVC 一起安装 boto3 库以支持 S3 存储。)

* 关于远程位置的说明:

  • HDFS、HTTP、WebDav 和 WebHDFS 不支持下载整个目录,仅支持单个文件。

另一种理解 dvc get-url 命令的方式是将其视为下载数据文件的工具。例如,在 GNU/Linux 系统上,对于 HTTP(S),可以使用以下方式代替 dvc get-url

$ wget https://example.com/path/to/data.csv

选项

  • -j <number>, --jobs <number> - DVC 从源下载数据时的并行级别。默认值为 4 * cpu_count()。使用更多任务可能加快操作速度。

  • -f, --force - 当使用 --out 指定本地目标文件或目录时,如果这些路径已存在,操作将失败。使用此标志会强制执行操作,导致命令覆盖现有的本地文件/目录。

  • --fs-config <name>=<value> - 针对目标 URL 的 dvc remote 配置选项。

  • -h, --help - 打印使用说明/帮助信息,然后退出。

  • -q, --quiet - 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。

  • -v, --verbose - 显示详细的跟踪信息。

示例

此命令将 S3 对象复制到当前工作目录,并保持相同的文件名:

$ dvc get-url s3://bucket/path

默认情况下,DVC 假定 AWS CLI 已经配置好

DVC 将使用 AWS 凭证文件访问 S3。若要覆盖配置,可以使用 dvc remote modify 中描述的参数。

我们使用 boto3 库与 AWS 进行通信。可能会执行以下 API 方法:

  • head_object
  • download_file

因此,请确保已启用 s3:GetObject 权限。

$ dvc get-url gs://bucket/path file

上述命令将 /path 文件(或目录)下载到 ./file

$ dvc get-url ssh://user@example.com/path/to/data

使用默认 SSH 凭证,上述命令获取 data 文件(或目录)。

$ dvc get-url hdfs://user@example.com/path/to/file

支持 HTTP 和 HTTPS 协议。

$ dvc get-url https://example.com/path/to/file
$ dvc get-url webhdfs://user@example.com/path/to/file
$ dvc get-url /local/path/to/data

上述命令将 /local/path/to/data 文件或目录复制到 ./dir

内容

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

在 GitHub 上编辑

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

Discord 聊天