64 个版本
0.16.0 | 2024年7月4日 |
---|---|
0.15.0 | 2024年3月26日 |
0.14.6 | 2023年12月21日 |
0.14.4 | 2023年11月22日 |
0.0.3 | 2022年3月28日 |
#41 in 网页编程
86,935 每月下载量
在 24 个 Crates 中使用 (直接使用 2 个)
270KB
6K SLoC
reqsign —
轻松进行 API 请求签名。
大多数 API 都很简单。但是,当它们被复杂抽象隐藏起来时,它们可能会变得复杂。 reqsign
将简单的 API 带回来:构建、签名、发送。
快速入门
use anyhow::Result;
use reqsign::AwsConfig;
use reqsign::AwsLoader;
use reqsign::AwsV4Signer;
use reqwest::Client;
use reqwest::Request;
use reqwest::Url;
#[tokio::main]
async fn main() -> Result<()> {
// Signer can load region and credentials from environment by default.
let client = Client::new();
let config = AwsConfig::default().from_profile().from_env();
let loader = AwsLoader::new(client.clone(), config);
let signer = AwsV4Signer::new("s3", "us-east-1");
// Construct request
let url = Url::parse("https://s3.amazonaws.com/testbucket")?;
let mut req = reqwest::Request::new(http::Method::GET, url);
// Signing request with Signer
let credential = loader.load().await?.unwrap();
signer.sign(&mut req, &credential)?;
// Sending already signed request.
let resp = client.execute(req).await?;
println!("resp got status: {}", resp.status());
Ok(())
}
功能
- 纯 Rust,依赖最少。
- 测试官方 SDK 和服务。
- 支持的服务
- 阿里云 OSS:
reqsign::AliyunOssSigner
- AWS 服务(SigV4):
reqsign::AwsV4Signer
- Azure 存储服务:
reqsign::AzureStorageSigner
- 谷歌服务:
reqsign::GoogleSigner
- 华为云 OBS:
reqsign::HuaweicloudObsSigner
- 阿里云 OSS:
贡献
查看 CONTRIBUTING.md 指南以获取有关如何为此项目贡献的更多详细信息。
寻求帮助
致谢
从以下项目中获得了大量灵感
- aws-sigv4 为 AWS SigV4 支持。
- azure_storage_blobs 为 Azure 存储支持。
许可
在 Apache 许可证第 2 版 下许可。依赖项
~3–18MB
~277K SLoC