Aliyun OSS Rust SDK
==============
This project is under active development. Any feedback and contribution would be greatly appreciated.
Aliyun Object Storage Service (OSS) is a massive, secure, cost-effective, and highly reliable cloud storage service provided by Alibaba Cloud. Users can store and access any type of data at any time, from anywhere, using any internet device through simple REST interfaces. OSS provides SDKs in multiple programming languages to help developers quickly integrate with OSS services.
Features
- Split operations to separated modules to reduce size of the final artifact.
- Uses asynchronous calls to Aliyun API by default.
- Supports blocking calls with
blockingfeature enabled. - Supports serialization and deserialization of data with
serde-supportfeature enabled. - Supports field name "camelCase" while serializing/deserializing data with
serde-camelcasefeature enabled. - Supports using rust tls with
rust-tlsfeature enabled. - Re-export
serdeandserde_jsoncrate.
Implemented Operations
- Bucket
- Create bucket
- List buckets
- Delete bucket
- Get bucket information
- Get bucket statistics data
- Get bucket location
- List objects in bucket. (v2)
- Objects
- Put object: upload local file, buffer, base64 string with callback support
- Put object: create a folder
- Get object: download to local file
- Get object metadata
- Head object: get detail metadata of an object
- Copy object
- Delete object, or delete multiple objects
- Check if object exists
- Append object: from file, buffer and base64 string
- Restore object
- Clean restored object
- URL with signature for
GETrequest - Multipart uploads: from file with range, buffer and base64 string.
- Multipart uploads: list parts and abort multipart uploads
- Abort multipart uploads
- Multipart uploads copy
Notice: The etag in this library is sanitized by removing the leading and trailing double quotation marks ("). I don't understand why the ETag returned from the Aliyun API is wrapped in double quotation marks.
Examples
You need add dotenvy crate to your project.
dotenv.unwrap;
// `.env` file should contain the following keys
//
// ALI_ACCESS_KEY_ID=your_access_key_id
// ALI_ACCESS_KEY_SECRET=your_access_key_secret
// ALI_OSS_REGION=cn-beijing
// ALI_OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com
let client = from_env;
let list_buckets_result = client.list_buckets.await?;
list_buckets_result.buckets.iter.for_each;
let objects = client
.list_objects.await?;
objects.contents.iter.for_each;
Ok