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, excludes=None)¶
高级下载和解压 tgz、zip 或其他压缩格式文件的功能。这只是 download、unzip 和在解压后删除临时 zip 文件的简单封装。您可以传递哈希校验参数:
md5、sha1、sha256。所有指定的算法都将进行校验。如果任何一个不匹配,将引发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()。excludes – 转发给
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 (FTPS) 上的 FTP。默认为 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 下载,但这也可以被禁用。
您可以传递哈希校验参数:
md5、sha1、sha256。所有指定的算法都将进行校验。如果任何一个不匹配,下载的文件将被删除,并引发ConanException。- 参数:
conanfile – 当前的配方对象。始终使用
self。url – 要下载的 URL。它可以是列表,其中只有第一个 URL 会被下载,而后续的 URL 在下载失败时将用作镜像。可以通过以
file:///开头的 URL 来引用本地文件系统中的文件,后面跟着文件的绝对路径(第三个/表示localhost)。filename – 要在本地存储中创建的文件名。
verify – 当设置为 False 时,禁用 https 证书验证。
retry – 发生故障时的重试次数。默认值由“tools.files.download:retry”配置覆盖。
retry_wait – 下载尝试之间等待的秒数。默认值由“tools.files.download:retry_wait”配置覆盖。
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:重试之间等待的秒数。