存储空间(Bucket)
存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。
- 同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。
- 每个用户可以拥有多个存储空间。
- 存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称。
- 存储空间内部的对象数目没有限制。
存储空间的命名规范如下:
- 只能包括小写字母、数字和短横线(-)。
- 必须以小写字母或者数字开头和结尾。
- 长度必须在 3–63 字节之间。
对象/文件(Object)
对象是 OSS 存储数据的基本单元,也被称为 OSS 的文件。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的 Key 来标识。对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。
对象的生命周期是从上传成功到被删除为止。在整个生命周期内,只有通过追加上传的 Object 可以继续通过追加上传写入数据,其他上传方式上传的 Object 内容无法编辑,您可以通过重复上传同名的对象来覆盖之前的对象。
对象的命名规范如下:如果上传 objectname 命名含有一些特殊字符,比如中文、空格、特殊符号等,需要客户本地上传或者下载时将文件的 objectname 做一个 URL encoder 编码
- 使用 UTF-8 编码。
- 长度必须在 1–1023 字节之间。
- 不能以正斜线(/)或者反斜线()开头。
Region(地域)
Region 表示 OSS 的数据中心所在物理位置。用户可以根据费用、请求来源等选择合适的地域创建 Bucket。一般来说,距离用户更近的 Region 访问速度更快。详情请查看 OSS 已经开通的 Region。
Region 是在创建 Bucket 的时候指定的,一旦指定之后就不允许更改。该 Bucket 下所有的 Object 都存储在对应的数据中心,目前不支持 Object 级别的 Region 设置。
region 格式一般是 oss-$国家-$地域,比如 oss-cn-beijing ,就是代表存储的物理位置是在北京。
Endpoint(访问域名)
Endpoint 表示 OSS 对外服务的访问域名。OSS 以 HTTP RESTful API 的形式对外提供服务,当访问不同的 Region 的时候,需要不同的域名。通过内网和外网访问同一个 Region 所需要的 Endpoint 也是不同的。例如杭州 Region 的外网 Endpoint 是 oss-cn-hangzhou.aliyuncs.com,内网 Endpoint 是 oss-cn-hangzhou-internal.aliyuncs.com。具体的内容请参见各个 Region 对应的 Endpoint。
bucket 公网域名
指的是 bucket 和 endpoint 结合在一起,让用户访问的公网域名。完整的格式是 $bucket.$endpoint ,比如我的 bucket 是 xiaoming,endpoint 在杭州(oss-cn-hangzhou.aliyuncs.com),那么我的bucket 公网域名就是 xiaoming.oss-cn-hangzhou.aliyuncs.com
AccessKey(访问密钥)
AccessKey(简称 AK)指的是访问身份验证中用到的 AccessKeyId 和 AccessKeySecret。OSS 通过使用 AccessKeyId 和 AccessKeySecret 对称加密的方法来验证某个请求的发送者身份。AccessKeyId 用于标识用户;AccessKeySecret 是用户用于加密签名字符串和 OSS 用来验证签名字符串的密钥,必须保密。对于 OSS 来说,AccessKey 的来源有:
- Bucket 的拥有者申请的 AccessKey。
- 被 Bucket 的拥有者通过 RAM 授权给第三方请求者的 AccessKey。
- 被 Bucket 的拥有者通过 STS 授权给第三方请求者的 AccessKey。
关于 AccessKey 可以在 访问控制 详细分析