conan.tools.files 下载

conan.tools.files.get()

get(conanfile, url, md5=None, sha1=None, sha256=None, destination='.', filename='', keep_permissions=False, pattern=None, verify=True, retry=None, retry_wait=None, auth=None, headers=None, strip_root=False, extract_filter=None)

高层级的下载和解压缩 tgz、zip 或其他压缩格式文件。只是 download、unzip 的高层级封装,并在解压缩后删除临时 zip 文件。您可以传递哈希检查参数:md5sha1sha256。将检查所有指定的算法。如果任何一个不匹配,它将引发 ConanException

参数:
  • conanfile – 当前配方对象。始终使用 self

  • destination – (可选,默认为 .)目标文件夹

  • filename – (可选,默认为 '')如果提供,保存的文件将具有指定的名称,否则将从 URL 推断

  • url – 转发到 tools.file.download()

  • md5 – 转发到 tools.file.download()

  • sha1 – 转发到 tools.file.download()

  • sha256 – 转发到 tools.file.download()

  • keep_permissions – 转发到 tools.file.unzip()

  • pattern – 转发到 tools.file.unzip()

  • verify – 转发到 tools.file.download()

  • retry – 转发到 tools.file.download()

  • retry_wait – S 转发到 tools.file.download()

  • auth – 转发到 tools.file.download()

  • headers – 转发到 tools.file.download()

  • strip_root – 转发到 tools.file.unzip()

  • extract_filter – 转发到 tools.file.unzip()

重要提示

get() 内部调用 unzip()。请阅读 conan.tools.files.unzip() 中关于 Python 3.14 破坏性更改和新的 tar 归档文件提取过滤器的注意事项。

conan.tools.files.ftp_download()

ftp_download(conanfile, host, filename, login='', password='', secure=False)

FTP 文件下载。从 FTP 服务器检索文件。

参数:
  • conanfile – 当前配方对象。始终使用 self

  • host – FTP 服务器的 IP 或主机名。

  • filename – 要下载的文件的路径。

  • login – 身份验证登录名。

  • password – 身份验证密码。

  • secure – 设置为 True 以使用基于 TLS/SSL 的 FTP (FTPS)。默认为 False,表示常规 FTP。

用法

from conan.tools.files import ftp_download

def source(self):
    ftp_download(self, 'ftp.debian.org', "debian/README")
    self.output.info(load("README"))

conan.tools.files.download()

download(conanfile, url, filename, verify=True, retry=None, retry_wait=None, auth=None, headers=None, md5=None, sha1=None, sha256=None)

从给定的 URL 检索文件到具有给定文件名的文件中。它使用来自已知验证器列表的证书进行 https 下载,但这可以可选地禁用。

您可以传递哈希检查参数:md5sha1sha256。将检查所有指定的算法。如果任何一个不匹配,将删除下载的文件,并引发 ConanException

参数:
  • conanfile – 当前配方对象。始终使用 self

  • url – 要下载的 URL。它可以是一个列表,仅下载第一个 URL,如果下载错误,则后续 URL 将用作镜像。可以使用以 file:/// 开头的 URL 引用本地文件系统中的可访问文件,后跟文件的绝对路径(其中第三个 / 意味着 localhost)。

  • filename – 要在本地存储中创建的文件名

  • verify – 当为 False 时,禁用 https 证书验证

  • retry – 失败时的重试次数。默认值被 “tools.files.download:retry” conf 覆盖

  • retry_wait – 下载尝试之间等待的秒数。默认值被 “tools.files.download:retry_wait” conf 覆盖。

  • auth – 用于 HTTPBasic 身份验证的用户名和密码元组

  • headers – 包含附加标头的字典

  • md5 – 用于检查下载文件的 MD5 哈希码

  • sha1 – 用于检查下载文件的 SHA-1 哈希码

  • sha256 – 用于检查下载文件的 SHA-256 哈希码

用法

download(self, "http://someurl/somefile.zip", "myfilename.zip")

# to disable verification:
download(self, "http://someurl/somefile.zip", "myfilename.zip", verify=False)

# to retry the download 2 times waiting 5 seconds between them
download(self, "http://someurl/somefile.zip", "myfilename.zip", retry=2, retry_wait=5)

# Use https basic authentication
download(self, "http://someurl/somefile.zip", "myfilename.zip", auth=("user", "password"))

# Pass some header
download(self, "http://someurl/somefile.zip", "myfilename.zip", headers={"Myheader": "My value"})

# Download and check file checksum
download(self, "http://someurl/somefile.zip", "myfilename.zip", md5="e5d695597e9fa520209d1b41edad2a27")

# to add mirrors
download(self, ["https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz",
                "http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-9.3.0/gcc-9.3.0.tar.gz"],
                "gcc-9.3.0.tar.gz",
               sha256="5258a9b6afe9463c2e56b9e8355b1a4bee125ca828b8078f910303bc2ef91fa6")

conf

它使用以下配置条目

  • tools.files.download:retry: 发生错误时的重试次数。

  • tools.files.download:retry_wait: 重试之间等待的秒数。