14个不稳定版本 (5个破坏性更新)
0.5.0 | 2023年10月8日 |
---|---|
0.4.1 | 2023年1月20日 |
0.3.3 | 2023年1月8日 |
0.3.2 | 2022年8月30日 |
0.1.1 | 2020年12月31日 |
#64 in 认证
每月4,754次下载
用于 10 个Crate(6个直接使用)
145KB
3.5K SLoC
rusty-s3
遵循Sans-IO方法的简单纯Rust AWS S3客户端,采用现代且充满Rust风格的s3 API实现。
提供了使用AWS Signature Version 4进行请求签名和响应解析的能力,用于最常见的S3操作。
GitHub Actions在每个提交时测试Minio兼容性。
示例
use std::env;
use std::time::Duration;
use rusty_s3::{Bucket, Credentials, S3Action, UrlStyle};
// setting up a bucket
let endpoint = "https://s3.dualstack.eu-west-1.amazonaws.com".parse().expect("endpoint is a valid Url");
let path_style = UrlStyle::VirtualHost;
let name = "rusty-s3";
let region = "eu-west-1";
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("AWS_ACCESS_KEY_ID").expect("AWS_ACCESS_KEY_ID is set and a valid String");
let secret = env::var("AWS_SECRET_ACCESS_KEY").expect("AWS_ACCESS_KEY_ID 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));
更多示例可以在GitHub上的示例目录中找到。
支持的S3操作
依赖项
~2.1–3.5MB
~86K SLoC