Skip to main content

Crate reqsign

Crate reqsign 

Source
Expand description

Signing API requests without effort.

§Example

use anyhow::Result;
use reqsign::AwsConfig;
use reqsign::AwsDefaultLoader;
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 = AwsDefaultLoader::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(())
}

§Available Services

  • [Aliyun OSS][crate::AliyunOssSigner] for Aliyun OSS.
  • AWS SigV4 for AWS services like S3.
  • [Azure Storage][crate::AzureStorageSigner] for Azure Storage services like Azure Blob Service.
  • Google for All google cloud services like Google Cloud Storage Service.
  • [Huawei Cloud OBS][crate::HuaweicloudObsSigner] 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.

Structs§

AwsAssumeRoleLoader
AssumeRoleLoader will load credential via assume role.
AwsConfig
Config for aws services.
AwsCredential
Credential that holds the access_key and secret_key.
AwsDefaultLoader
CredentialLoader will load credential from different methods.
AwsV4Signer
Singer that implement AWS SigV4.
GoogleCredential
A Google API credential file.
GoogleCredentialLoader
CredentialLoader will load credential from different methods.
GoogleSigner
Singer that implement Google OAuth2 Authentication.
GoogleToken
Token is the authentication methods used by google services.
GoogleTokenLoader
TokenLoader will load token from different methods.

Traits§

AwsCredentialLoad
Loader trait will try to load credential from different sources.
GoogleTokenLoad
Loader trait will try to load credential from different sources.