Crate qiniu_credential

Source
Expand description

§qiniu-credential

§七牛认证信息

负责存储调用七牛 API 所必要的认证信息,提供 CredentialProvider 方便扩展获取认证信息的方式。 同时提供阻塞接口和异步接口(异步接口需要启用 async 功能)。 提供 CredentialProvider 的多个实现方式,例如:

§代码示例

§计算七牛鉴权签名 V1
use qiniu_credential::{Credential, HeaderValue, prelude::*};
use mime::APPLICATION_WWW_FORM_URLENCODED;
use std::io::Cursor;

let credential = Credential::new("abcdefghklmnopq", "1234567890");
let authorization = credential
    .get(Default::default())?
    .authorization_v1_for_request(
        &"http://upload.qiniup.com/".parse()?,
        Some(&HeaderValue::from_str(APPLICATION_WWW_FORM_URLENCODED.as_ref())?),
        b"name=test&language=go"
    );
§计算七牛鉴权签名 V2
use qiniu_credential::{Credential, Method, HeaderMap, HeaderValue, prelude::*};
use http::header::CONTENT_TYPE;
use mime::APPLICATION_JSON;
let credential = Credential::new("abcdefghklmnopq", "1234567890");
let mut headers = HeaderMap::new();
headers.insert(CONTENT_TYPE, HeaderValue::from_str(APPLICATION_JSON.as_ref())?);
let authorization = credential
    .get(Default::default())?
    .authorization_v2_for_request(
        &Method::GET,
        &"http://upload.qiniup.com/".parse()?,
        &headers,
        b"{\"name\":\"test\"}".as_slice(),
    );
§计算下载地址签名
use qiniu_credential::{Credential, prelude::*};
use std::time::Duration;
let credential = Credential::new("abcdefghklmnopq", "1234567890");
let url = "http://www.qiniu.com/?go=1".parse()?;
let url = credential
    .get(Default::default())?
    .sign_download_url(url, Duration::from_secs(3600));
println!("{}", url);
Ok(())
}

Modules§

prelude
将所有 Trait 全部重新导出,方便统一导入

Structs§

AccessKey
七牛 Access Key
ChainCredentialsProvider
认证信息串提供者
ChainCredentialsProviderBuilder
串联认证信息构建器
Credential
认证信息
EnvCredentialProvider
环境变量认证信息提供者,可以将认证信息配置在环境变量中。
Extensions
A type map of protocol extensions.
GetOptions
获取认证信息的选项
GlobalCredentialProvider
全局认证信息提供者,可以将认证信息配置在全局变量中。任何全局认证信息提供者实例都可以设置和访问全局认证信息。
GotCredential
获取的认证信息
HeaderMap
A set of HTTP headers
HeaderName
Represents an HTTP header field name
HeaderValue
Represents an HTTP header field value.
Method
The Request Method (VERB)
SecretKey
七牛 Secret Key
Uri
The URI component of a request.

Constants§

QINIU_ACCESS_KEY_ENV_KEY
设置七牛 AccessKey 的环境变量
QINIU_SECRET_KEY_ENV_KEY
设置七牛 SecretKey 的环境变量

Traits§

AsyncReadasync
Read bytes asynchronously.
CredentialProvider
认证信息获取接口