Expand description
Signing API requests without effort.
Example
use anyhow::Result;
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 signer = AwsV4Signer::builder()
.service("s3")
.region("test")
.allow_anonymous()
.build()?;
// 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
signer.sign(&mut req)?;
// Sending already signed request.
let resp = Client::new().execute(req).await?;
println!("resp got status: {}", resp.status());
Ok(())
}
Available Services
- Aliyun OSS for Aliyun OSS.
- AWS SigV4 for AWS services like S3.
- Azure Storage for Azure Storage services like Azure Blob Service.
- Google for All google cloud services like Google Cloud Storage Service.
- Huawei Cloud OBS for Huawei Cloud Object Storage Service (OBS).
Features
reqsign support http::Request
by default. Other request types support are hided
under feature gates to reduce dependencies.
reqwest_request
: Enable to support signingreqwest::Request
reqwest_blocking_request
: Enable to support signingreqwest::blocking::Request
http_types_request
: Enable to support signinghttp_types::Request
Modules
Provide Credential for most services.
Structs
Builder for
Signer
Singer for Aliyun OSS.
Builder for
Signer
.Singer that implement AWS SigV4.
Builder for
Signer
.Singer that implement Azure Storage Shared Key Authorization.
Builder for Signer.
Singer that implement Google OAuth2 Authentication.
Builder for
Signer
.Singer that implement Huawei Cloud Object Storage Service Authorization.