5 releases
0.2.1 | Feb 7, 2025 |
---|---|
0.2.0 | Feb 7, 2025 |
0.1.2 | Feb 7, 2025 |
0.1.1 | Feb 7, 2025 |
0.1.0 | Feb 7, 2025 |
#494 in Web programming
433 downloads per month
145KB
3.5K
SLoC
rusty-oss
rusty-oss
是一个纯 Rust 编写的对象存储客户端,灵感来源于 rusty-s3 项目。该项目是一个简单的纯 Rust OSS 客户端,使用 OSS 签名版本 4 来进行请求签名。
示例
以下是一个简单的使用示例:
use std::env;
use std::time::Duration;
use rusty_oss::{Bucket, Credentials, OSSAction, UrlStyle};
# env::set_var("ALIYUN_OSS_ACCESS_KEY", "key");
# env::set_var("ALIYUN_OSS_ACCESS_SECRET", "secret");
// setting up a bucket
let endpoint = "https://oss-cn-hangzhou.aliyuncs.com".parse().expect("endpoint is a valid Url");
let path_style = UrlStyle::VirtualHost;
let name = "examplebucket";
let region = "cn-hangzhou";
let bucket = Bucket::new(endpoint, path_style, name, region).expect("Url has a valid scheme and host");
// setting up the credentials
let key = env::var("ALIYUN_OSS_ACCESS_KEY").expect("ALIYUN_OSS_ACCESS_KEY is set and a valid String");
let secret = env::var("ALIYUN_OSS_ACCESS_SECRET").expect("ALIYUN_OSS_ACCESS_SECRET is set and a valid String");
let credentials = Credentials::new(key, secret);
// signing a request
let presigned_url_duration = Duration::from_secs(60 * 60);
let action = bucket.get_object(Some(&credentials), "duck.jpg");
println!("GET {}", action.sign(presigned_url_duration));
已支持的 OSS 接口
- Bucket level methods
- Basic methods
- Multipart upload
Dependencies
~4–5.5MB
~104K SLoC