概述

US3基本概念

在对象存储系统中,存储空间(Bucket)是文件(File)的组织管理单位,文件(File)是存储空间的逻辑存储单元。对于每个账号,该账号里存放的每个文件都有唯一的一对存储空间(Bucket)与键(Key)作为标识。我们可以把 Bucket 理解成一类文件的集合,Key 理解成文件名。由于每个 Bucket 需要配置和权限不同,每个账户里面会有多个 Bucket。在 US3 里面,Bucket 主要分为公有和私有两种,公有 Bucket 里面的文件可以对任何人开放,私有 Bucket 需要配置对应访问签名才能访问。

签名

本 SDK 接口是基于 HTTP 的,为了连接的安全性,US3 使用 HMAC SHA1 对每个连接进行签名校验。使用本 SDK 可以忽略签名相关的算法过程,只要把公私钥写入到配置文件里面(注意不要传到版本控制里面),读取并传给 UFileRequest 里面的 New 方法即可。 签名相关的算法与详细实现请见 Auth 模块

SDK源码和API文档

github 仓库

本 SDK 使用 godoc 约定的方法对每个 export 出来的接口进行注释。 你可以直接访问生成好的在线文档

示例程序

源码example文件夹下提供了丰富的示例程序,具体如下:

示例文件 示例内容
demo_context.go 为http request 设置 context
demo_bucket.go 存储空间管理
demo_file.go 文件基本操作,包括普通上传、表单上传、同步分片、下载、解冻、重命名、复制等
demo_io.go 流式上传、下载
demo_iop.go 图片处理
demo_policy.go 上传后回调
demo_async_mput.go 异步分片上传
demo_async_upload.go 异步并发分片上传
demo_downloadfile.go 文件下载,包括普通下载和流式下载
demo_storageclass_op.go 存储类型转换