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 格式示例 |
|---|---|---|
s3 | Amazon S3 | s3://bucket/data |
azure | Microsoft Azure Blob 存储 | azure://container/data |
gs | Google Cloud Storage | gs://bucket/data |
ssh | SSH 服务器 | ssh://user@example.com/path/to/data |
hdfs | HDFS 到文件* | hdfs://user@example.com/path/to/data.csv |
http | HTTP 到文件* | https://example.com/path/to/data.csv |
webdav | WebDav 到文件* | webdavs://example.com/enpoint/path |
webhdfs | HDFS 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_objectdownload_file因此,请确保已启用
s3:GetObject权限。