rusty-oss 0.1.1

Simple pure Rust Aliyun OSS Client following a Sans-IO approach
Documentation
# rust-oss

`rust-oss` 是一个纯 Rust 编写的对象存储客户端,灵感来源于 [rusty-s3](https://github.com/paolobarbolini/rusty-s3) 项目。该项目是一个简单的纯 Rust OSS 客户端,使用 OSS 签名版本 4 来进行请求签名。

## 示例

以下是一个简单的使用示例:

```rust
use std::env;
use std::time::Duration;
use rusty_oss::{Bucket, Credentials, OSSAction, UrlStyle};
# env::set_var("ALIYUN_OSS_ACCESS_KEY", "key");
# env::set_var("ALIYUN_OSS_ACCESS_SECRET", "secret");

// setting up a bucket
let endpoint = "https://oss-cn-hangzhou.aliyuncs.com".parse().expect("endpoint is a valid Url");
let path_style = UrlStyle::VirtualHost;
let name = "examplebucket";
let region = "cn-hangzhou";
let bucket = Bucket::new(endpoint, path_style, name, region).expect("Url has a valid scheme and host");

// setting up the credentials
let key = env::var("ALIYUN_OSS_ACCESS_KEY").expect("ALIYUN_OSS_ACCESS_KEY is set and a valid String");
let secret = env::var("ALIYUN_OSS_ACCESS_SECRET").expect("ALIYUN_OSS_ACCESS_SECRET is set and a valid String");
let credentials = Credentials::new(key, secret);

// signing a request
let presigned_url_duration = Duration::from_secs(60 * 60);
let action = bucket.get_object(Some(&credentials), "duck.jpg");
println!("GET {}", action.sign(presigned_url_duration));
```
## 已支持的 OSS 接口

* Bucket level methods
    * [`CreateBucket`][createbucket]
    * [`DeleteBucket`][deletebucket]
    * [`GetBucketInfo`][getbucketinfo]
* Basic methods
    * [`HeadObject`][headobject]
    * [`GetObject`][getobject]
    * [`PutObject`][putobject]
    * [`DeleteObject`][deleteobject]
    * [`DeleteObjects`][deleteobjects]
    * [`ListObjectsV2`][listobjectsv2]
* Multipart upload
    * [`CreateMultipartUpload`][completemultipart]
    * [`UploadPart`][uploadpart]
    * [`ListParts`][listparts]
    * [`CompleteMultipartUpload`][completemultipart]
    * [`AbortMultipartUpload`][abortmultipart]

[abortmultipart]: https://help.aliyun.com/zh/oss/developer-reference/abortmultipartupload
[completemultipart]: https://help.aliyun.com/zh/oss/developer-reference/completemultipartupload
[listparts]: https://help.aliyun.com/zh/oss/developer-reference/listparts
[createbucket]: https://help.aliyun.com/zh/oss/developer-reference/putbucket
[deletebucket]: https://help.aliyun.com/zh/oss/developer-reference/deletebucket
[getbucketinfo]: https://help.aliyun.com/zh/oss/developer-reference/getbucketinfo
[createmultipart]: https://help.aliyun.com/zh/oss/developer-reference/initiatemultipartupload
[deleteobject]: https://help.aliyun.com/zh/oss/developer-reference/deleteobject
[deleteobjects]: https://help.aliyun.com/zh/oss/developer-reference/deletemultipleobjects
[getobject]: https://help.aliyun.com/zh/oss/developer-reference/getobject
[headobject]: https://help.aliyun.com/zh/oss/developer-reference/headobject
[listobjectsv2]: https://help.aliyun.com/zh/oss/developer-reference/listobjectsv2
[putobject]: https://help.aliyun.com/zh/oss/developer-reference/putobject
[uploadpart]: https://help.aliyun.com/zh/oss/developer-reference/uploadpart