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

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

Structs

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

Constants

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

Traits

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