Qiniu-Upload-Token

qiniu-upload-token docs.rs Run Test Cases GitHub release MIT licensed

概览

负责配置七牛对象上传所需要的上传策略,并提供生成上传凭证的库函数,同时提供 UploadTokenProvider 方便扩展获取上传凭证的方式。 同时提供阻塞接口和异步接口(异步接口需要启用 async 功能)。 提供 UploadTokenProvider 的多个实现方式,例如:

安装

不启用异步接口

toml [dependencies] qiniu-upload-token = "0.0.9"

启用异步接口

toml [dependencies] qiniu-upload-token = { version = "0.0.9", 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?; ```

最低支持的 Rust 版本(MSRV)

1.60.0

联系我们

代码许可

This project is licensed under the [MIT license].