6 个版本
0.3.2 | 2020 年 7 月 8 日 |
---|---|
0.3.1 | 2020 年 5 月 16 日 |
0.3.0 | 2020 年 4 月 30 日 |
0.2.1 | 2019 年 9 月 7 日 |
0.1.0 | 2018 年 8 月 15 日 |
#33 in #retry
在 2 个 crate 中使用 (通过 amadeus-commoncrawl)
14KB
186 代码行
reqwest_resume
使用 Range
HTTP 头部来恢复 GET 请求的包装器。
它是 reqwest
的一个薄包装器。这是一个正在进行中的项目 - 按需复制包装功能。如果您需要什么,请随时提交 PR/issue。
示例
use async_compression::futures::bufread::GzipDecoder;
use futures::{io::BufReader, AsyncBufReadExt, StreamExt, TryStreamExt};
use std::io;
#[tokio::main]
async fn main() {
let url = "http://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2018-30/warc.paths.gz";
let body = reqwest_resume::get(url.parse().unwrap()).await.unwrap();
// Content-Encoding isn't set, so decode manually
let body = body
.bytes_stream()
.map_err(|e| io::Error::new(io::ErrorKind::Other, e));
let body = BufReader::new(body.into_async_read());
let mut body = GzipDecoder::new(body); // Content-Encoding isn't set, so decode manually
body.multiple_members(true);
let mut lines = BufReader::new(body).lines();
while let Some(line) = lines.next().await {
println!("{}", line.unwrap());
}
}
许可证
许可证为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE.txt 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT.txt 或 http://opensource.org/licenses/MIT)
任选其一。
除非您明确声明,否则根据 Apache-2.0 许可证定义的您有意提交以包含在作品中的任何贡献,均应按上述方式双重许可,不得附加任何其他条款或条件。
依赖项
~7–11MB
~223K SLoC