fetch_data 使用实例
Fetch-Data 库可以快速检查本地数据目录,然后下载所需文件。它总是通过哈希验证本地文件和下载的文件。它可以轻松下载大小样本文件。例如,这里我们从 GitHub 下载一个基因组学文件(如果尚未下载)。然后我们打印现在本地文件的大小。
use fetch_data::sample_file;let path = sample_file("small.fam")?;println!("{}", std::fs::metadata(path)?.len()); // Prints 85
它有如下特征
线程安全——允许它与 Rust 的多线程测试框架一起使用。
受到 Python 流行的Pooch和我们的 PySnpTools文件缓存模块的启发。
使用异步运行时例如 Tokio(使用 ureq 通过阻塞 I/O 下载文件)。
推荐使用方法:
创建一个registry.txt包含以空格分隔的文件列表及其哈希值的文件。
创建一个 FetchData 读取 registry.txt 文件的全局静态实例。赋予它:1、文件 URL 根目录;2、一个环境变量,告诉存储文件的本地数据目录 3、qualifier, organization, and application 用于在未设置环境变量时创建本地数据目录。有关详细信息,请参阅 crate ProjectsDir。
如下所示,定义一个公共 sample_file 函数,该函数接受一个文件名并返回一个 Result 包