ITPub博客

首页 > 数据库 > 数据库开发技术 > 【Rust日报】2022-07-01 - fetch_data 使用实例

【Rust日报】2022-07-01 - fetch_data 使用实例

原创 数据库开发技术 作者:Rust语言中文社区 时间:2022-07-02 23:51:40 0 删除 编辑

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 包含下载文件的路径的函数
use fetch_data::{ctor, FetchData, FetchDataError};use std::path::{Path, PathBuf};#[ctor]static STATIC_FETCH_DATA: FetchData = FetchData::new( include_str!("../registry.txt"), "https://raw.githubusercontent.com/CarlKCarlK/fetch-data/main/tests/data/", "BAR_APP_DATA_DIR", // env_key
"com", // qualifier
"Foo Corp", // organization
"Bar App", // application);/// Download a data file.pub fn sample_file<P: AsRef<Path>>(path: P) -> Result<PathBuf, FetchDataError> {
STATIC_FETCH_DATA.fetch_file(path)
}
您现在可以sample_file根据需要使用您的函数下载文件。
  • https://docs.rs/fetch-data/latest/fetch_data/

Rust China 2021~2022 大会即将召开 @Mike Tang

大家盼望已久的好消息终于来到了!Rust中文社区大会策划小组已经决定,将大会由线下转移至线上进行。时间为2022年7月30日(周六)或 31日(周日),具体提前通知。线上的具体形式还在策划和准备中,有最新消息,会即时通报给大家。2021年在活动行上售卖的门票已经做了退款处理。如果有谁还没收到退款的,请留言与我们联系。这次大会改为纯线上了,失去了线下大会的面基优势,但我们会努力通过扩展线上的形式,尽量达到大家互动的效果。敬请期待。
  • https://rustcc.cn/article?id=48c7f26a-8014-402f-9638-ec0794a61ad4

From 日报小组 侯盛鑫 坏姐姐

社区学习交流平台订阅:
  • Rust.cc 论坛: 支持 rss
  • 微信公众号:Rust 语言中文社区

原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-06-11

  • 博文量
    1769
  • 访问量
    718769