7个版本

0.1.2 2024年3月6日
0.1.1 2024年2月8日
0.1.0 2024年2月5日
0.1.0-beta.32024年2月1日
0.1.0-beta.22024年1月29日

#196 in HTTP客户端

Download history 19/week @ 2024-04-02 23/week @ 2024-04-09 178/week @ 2024-04-16 142/week @ 2024-04-23 30/week @ 2024-04-30 1/week @ 2024-05-21 15/week @ 2024-05-28 191/week @ 2024-06-25 593/week @ 2024-07-02 8/week @ 2024-07-09 5/week @ 2024-07-16

每月797次下载
用于bed-reader

MIT/Apache

45KB
387

cloud-file

github crates.io docs.rs build status

Rust中云文件的简单读取

亮点

安装

cargo add cloud-file

示例

查找云文件的大小。

use cloud_file::CloudFile;
# Runtime::new().unwrap().block_on(async {  // '#' needed for doctest

let url = "https://raw.githubusercontent.com/fastlmm/bed-sample-files/main/toydata.5chrom.fam";
let cloud_file = CloudFile::new(url)?;
let file_size = cloud_file.read_file_size().await?;
assert_eq!(file_size, 14_361);
# Ok::<(), Box<dyn std::error::Error>>(()) }).unwrap();
# use {cloud_file::CloudFileError, tokio::runtime::Runtime};

查找云文件中的行数。

use cloud_file::CloudFile;
use futures::StreamExt; // Enables `.next()` on streams.
# Runtime::new().unwrap().block_on(async { // '#' needed for doctest

let url = "https://raw.githubusercontent.com/fastlmm/bed-sample-files/main/toydata.5chrom.fam";
let cloud_file = CloudFile::new_with_options(url, [("timeout", "30s")])?;
let mut chunks = cloud_file.stream_chunks().await?;
let mut newline_count: usize = 0;
while let Some(chunk) = chunks.next().await {
    let chunk = chunk?;
    newline_count += bytecount::count(&chunk, b'\n');
}
assert_eq!(newline_count, 500);
# Ok::<(), Box<dyn std::error::Error>>(()) }).unwrap();
# use {cloud_file::CloudFileError, tokio::runtime::Runtime};   

更多示例

示例 演示
line_count 以二进制块读取文件。
nth_line 以文本行读取文件。
bigram_counts 读取文件的无序随机区域。
aws_file_size 在AWS上查找文件的大小。

依赖关系

~8–18MB
~253K SLoC