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或其他压缩格式文件的高级函数。它是一个高级封装,用于下载、解压缩,并在解压缩后移除临时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()
。
重要
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)。常规FTP默认为False。
用法
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
: 每次重试之间等待的秒数。