
阿里云对象存储服务(Object Storage Service,简称 OSS)的非官方 SDK 实现,无复杂结构设计,链式风格
初始化
let client = OssClient::new("Your AccessKey ID","Your AccessKey Secret");
查询存储空间列表
let buckets = client.list_buckets().set_prefix("rust").send().await;
查询存储空间中文件列表
let bucket = client.bucket("for-rs-test","oss-cn-zhangjiakou.aliyuncs.com")
.list_objects()
.set_max_objects(200)
.set_prefix("rust")
.send()
.await;
上传文件
let object = client.bucket("for-rs-test").object("rust.png");
let result = object.put_object().send_file("Your File Path").await;
获取文件访问地址
```
use chrono::{Duration, Local};
let date = Local::now().naivelocal() + Duration::days(3);
let url = object.geturl().url(date);
```
已实现接口
基础操作
- [x] 列举存储空间列表 (ListBuckets)
- [x] 列举 OSS 开服地域信息 (DescribeRegions)
存储空间管理
- [x] 新建存储空间 (PutBucket)
- [x] 删除存储空间 (DeleteBucket)
- [x] 列举存储空间内文件列表 (ListObjectsV2)
- [x] 获取存储空间基本信息 (GetBucketInfo)
- [x] 获取存储空间统计信息 (GetBucketStat)
- [x] 批量删除文件 (DeleteMultipleObjects)
- [x] 列举未完成的分片上传事件 (ListMultipartUploads)
文件管理
- [x] 上传文件 (PutObject)
- [x] 下载文件 (GetObject)
- [x] 复制文件 (CopyObject)
- [x] 追加文件 (AppendObject)
- [x] 删除文件 (DeleteObject)
- [x] 解冻文件 (RestoreObject)
- [x] 获取文件元信息 (HeadObject)
- [x] 获取文件元信息 (GetObjectMeta)
- [x] 获取文件访问地址 (GetObjectUrl)
- 文件分片上传 (MultipartUpload)
- [x] 初始化分片上传事件 (InitiateMultipartUpload)
- [x] 上传分片 (UploadPart)
- [x] 复制文件内容到分片 (UploadPartCopy)
- [x] 完成分片上传 (CompleteMultipartUpload)
- [x] 取消分片上传事件 (AbortMultipartUpload)
- [x] 列举已上传的分片 (ListParts)
- 文件权限 (ACL)
- [x] 获取文件权限 (GetObjectACL)
- [x] 设置文件权限 (PutObjectACL)
- 文件标签 (Tagging)
- [x] 获取文件标签 (GetObjectTagging)
- [x] 设置文件标签 (PutObjectTagging)
- [x] 清空文件标签 (DeleteObjectTagging)
- 软链接 (Symlink)
- [x] 新增软链接 (PutSymlink)
- [x] 获取软链接 (GetSymlink)