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

§Features

reqsign support http::Request by default. Other request types support are hided under feature gates to reduce dependencies.

Structs§

AliyunConfig
Config carries all the configuration for Aliyun services.
AliyunCredential
Credential that holds the access_key and secret_key.
AliyunLoader
Loader will load credential from different methods.
AliyunOssSigner
Singer for Aliyun OSS.
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.
AzureStorageConfig
Config carries all the configuration for Azure Storage services.
AzureStorageLoader
Loader will load credential from different methods.
AzureStorageSigner
Singer that implement Azure Storage Shared Key Authorization.
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.
HuaweicloudObsConfig
Config carries all the configuration for Huawei Cloud OBS services.
HuaweicloudObsCredential
Credential for obs.
HuaweicloudObsCredentialLoader
CredentialLoader will load credential from different methods.
HuaweicloudObsSigner
Singer that implement Huawei Cloud Object Storage Service Authorization.
OCIAPIKeySigner
Singer for Oracle Cloud Infrastructure using API Key.
OCIConfig
Config carries all the configuration for Oracle services. will be loaded from default config file ~/.oci/config
OCICredential
Credential that holds the API private key. private_key_path is optional, because some other credential will be added later
OCILoader
Loader will load credential from different methods.
TencentCosConfig
Config carries all the configuration for Tencent COS services.
TencentCosCredential
Credential for cos.
TencentCosCredentialLoader
CredentialLoader will load credential from different methods.
TencentCosSigner
Singer for Tencent COS.

Enums§

AzureStorageCredential
Credential that holds the access_key and secret_key.

Traits§

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