3 unstable releases

0.2.0 Jan 21, 2020
0.1.2 Jan 19, 2020
0.1.0 Jan 19, 2020

#133 in #lib

Download history 13/week @ 2024-01-05 6/week @ 2024-01-12 4/week @ 2024-02-09 18/week @ 2024-02-16 23/week @ 2024-02-23 18/week @ 2024-03-01 24/week @ 2024-03-08 17/week @ 2024-03-15 27/week @ 2024-03-22 72/week @ 2024-03-29 28/week @ 2024-04-05 17/week @ 2024-04-12 7/week @ 2024-04-19

128 downloads per month
Used in 2 crates

MIT/Apache

19KB
118 lines

download_rs

使用rust写的一个简单 download 下载库

https://github.com/fengzhongyun1992/download_rs/actions https://github.com/fengzhongyun1992/download_rs/blob/master/LICENSE

简单使用

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 不兼容 🤭🤭🤭🤭

Dependencies

~3–15MB
~216K SLoC