download_rs
使用rust写的一个简单 download
下载库,是fengzhongyun1992
的download_rs一个 fork ,并且对依赖和 Rust语言特性做了更新。
简单使用
sync_download
- cargo:
download_rs = {version="0.2.0",features=["sync_download"]}
- code
use download_rs::sync_download::Download;
use std::error::Error;
use std::fs;
fn main() {
let url = "https://www.baidu.com/img/bd_logo1.png";
// 当前目录
let filename = "bd_log1.png";
// 指定 下载目录
// let filename = "/download/";
// 指定下载目录下载文件名,需要手动创建下载文件夹
// let filename = "download/bd_log1.png";
let download = Download::new(url,Some(filename),None);
match download.download() {
Ok(_) => println!("下载完成"),
Err(e) => println!("下载出错 : {}",e.to_string()),
}
// 删除图片
// fs::remove_file(filename).unwrap();
}
async_download
- cargo:
download_rs = "0.2.0"
或
download_rs = {version="0.2.0",features=["async_download"]}
- code
use download_rs::async_download::Download;
use std::fs;
fn main() {
let url = "https://www.baidu.com/img/bd_logo1.png";
// 当前目录
let filename = "bd_log1.png";
// 指定 下载目录
// let filename = "/download/";
// 指定下载目录下载文件名,需要手动创建下载文件夹
// let filename = "download/bd_log1.png";
let download = Download::new(url,Some(filename),None);
match download.download() {
Ok(_) => println!("下载完成"),
Err(e) => println!("下载出错 : {}",e.to_string()),
}
// 删除图片
// fs::remove_file(filename).unwrap();
}
async_download_default
- cargo:
download_rs = "0.2.0"
或
download_rs = {version="0.2.0",features=["async_download"]}
- code
use download_rs::async_download::Download;
use std::fs;
#[tokio::main]
async fn main() {
let url = "https://www.baidu.com/img/bd_logo1.png";
// 当前目录
let filename = "bd_log1.png";
// cargo test sync_download_test
// let url = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
// let proxy = Some("http://127.0.0.1:7890");
// let filename = "sync_bd_logo1.png";
// 指定 下载目录
// let filename = "/download/";
// 指定下载目录下载文件名,需要手动创建下载文件夹
// let filename = "download/bd_log1.png";
let download = Download::new(url,Some(filename),None);
// let download = Download::new(url,Some(filename),proxy);
match download.download_async().await {
Err(e) => panic!("error: {}",e.to_string()),
Ok(()) => println!("ok")
}
// 删除图片
// fs::remove_file(filename).unwrap();
}
版本说明
0.2.0
- 使用 new方法创建 Download对象
- 添加 proxy 字段
- 和 0.1.0 不兼容 🤭🤭🤭🤭