#sdk #oss #cloud #aliyun #storage #cloud-storage #alibaba

aliyun-oss-rs

A non-official Rust SDK implementation for Alibaba Cloud OSS

5 releases

0.0.5 Jul 19, 2023
0.0.4 Jul 14, 2023
0.0.3 Jul 13, 2023
0.0.2 Jun 17, 2023
0.0.1 Jun 15, 2023

#2 in #alibaba

MIT license

135KB
3K SLoC

Crates.io Documentation MIT licensed

阿里云对象存储服务(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().naive_local() + Duration::days(3);
let url = object.get_url().url(date);

已实现接口

  • 基础操作

    • 列举存储空间列表 (ListBuckets)
    • 列举 OSS 开服地域信息 (DescribeRegions)
  • 存储空间管理

    • 新建存储空间 (PutBucket)
    • 删除存储空间 (DeleteBucket)
    • 列举存储空间内文件列表 (ListObjectsV2)
    • 获取存储空间基本信息 (GetBucketInfo)
    • 获取存储空间统计信息 (GetBucketStat)
    • 批量删除文件 (DeleteMultipleObjects)
    • 列举未完成的分片上传事件 (ListMultipartUploads)
  • 文件管理

    • 上传文件 (PutObject)
    • 下载文件 (GetObject)
    • 复制文件 (CopyObject)
    • 追加文件 (AppendObject)
    • 删除文件 (DeleteObject)
    • 解冻文件 (RestoreObject)
    • 获取文件元信息 (HeadObject)
    • 获取文件元信息 (GetObjectMeta)
    • 获取文件访问地址 (GetObjectUrl)
    • 文件分片上传 (MultipartUpload)
      • 初始化分片上传事件 (InitiateMultipartUpload)
      • 上传分片 (UploadPart)
      • 复制文件内容到分片 (UploadPartCopy)
      • 完成分片上传 (CompleteMultipartUpload)
      • 取消分片上传事件 (AbortMultipartUpload)
      • 列举已上传的分片 (ListParts)
    • 文件权限 (ACL)
      • 获取文件权限 (GetObjectACL)
      • 设置文件权限 (PutObjectACL)
    • 文件标签 (Tagging)
      • 获取文件标签 (GetObjectTagging)
      • 设置文件标签 (PutObjectTagging)
      • 清空文件标签 (DeleteObjectTagging)
    • 软链接 (Symlink)
      • 新增软链接 (PutSymlink)
      • 获取软链接 (GetSymlink)

Dependencies

~13–26MB
~480K SLoC