负责配置七牛对象上传所需要的上传策略,并提供生成上传凭证的库函数,同时提供 UploadTokenProvider
方便扩展获取上传凭证的方式。
同时提供阻塞接口和异步接口(异步接口需要启用 async
功能)。
提供 UploadTokenProvider
的多个实现方式,例如:
StaticUploadTokenProvider
根据其他服务计算得到的上传凭证字符串生成上传凭证FromUploadPolicy
根据给出的上传策略和认证信息生成上传凭证BucketUploadTokenProvider
基于存储空间和认证信息即时生成上传凭证ObjectUploadTokenProvider
基于存储空间,对象名称和认证信息即时生成上传凭证CachedUploadTokenProvider
缓存生成的上传凭证,不必每次都即时生成toml
[dependencies]
qiniu-upload-token = "0.2.0"
toml
[dependencies]
qiniu-upload-token = { version = "0.2.0", features = ["async"] }
```rust use qiniuuploadtoken::{FileType, UploadPolicy, credential::Credential, prelude::*}; use std::time::Duration;
let uploadpolicy = UploadPolicy::newforobject("your-bucket", "your-key", Duration::fromsecs(3600)) .filetype(FileType::InfrequentAccess) .build(); let credential = Credential::new("your-access-key", "your-secret-key"); let uploadtoken = uploadpolicy .intodynamicuploadtokenprovider(credential) .totoken_string(Default::default())?; ```
```rust use qiniuuploadtoken::{StaticUploadTokenProvider, prelude::*};
let uploadtoken: StaticUploadTokenProvider = "your-access-key:qRD-BSfXGtovGsuOePTc1EKJo8=:eyJkZWFkbGluZSI6MTY0NzgyODY3NCwic2NvcGUiOiJ5b3VyLWJ1Y2tldC1uYW1lIn0=".parse()?; let accesskey = uploadtoken.accesskey(Default::default())?; let bucketname = uploadtoken.bucketname(Default::default())?; let uploadpolicy = uploadtoken.policy(Default::default())?; ```
```rust use qiniuuploadtoken::{FileType, UploadPolicy, credential::Credential, prelude::*}; use std::time::Duration;
let uploadpolicy = UploadPolicy::newforobject("your-bucket", "your-key", Duration::fromsecs(3600)) .filetype(FileType::InfrequentAccess) .build(); let credential = Credential::new("your-access-key", "your-secret-key"); let uploadtoken = uploadpolicy .intodynamicuploadtokenprovider(credential) .asynctotokenstring(Default::default()).await?; ```
```rust use qiniuuploadtoken::{StaticUploadTokenProvider, prelude::*};
let uploadtoken: StaticUploadTokenProvider = "your-access-key:qRD-BSfXGtovGsuOePTc1EKJo8=:eyJkZWFkbGluZSI6MTY0NzgyODY3NCwic2NvcGUiOiJ5b3VyLWJ1Y2tldC1uYW1lIn0=".parse()?; let accesskey = uploadtoken.asyncaccesskey(Default::default()).await?; let bucketname = uploadtoken.asyncbucketname(Default::default()).await?; let uploadpolicy = uploadtoken.async_policy(Default::default()).await?; ```
1.60.0
This project is licensed under the [MIT license].