基本概念

2022-11-15 17:07:23

对象存储基本概念

Object(对象)

对象存储中存储数据的最小单位,每个文件对应一个 Object。Object 名使用 UTF-8 编码。每个 Object 由数据和元数据组成。数据对应于存储的文件内容。元数据对应于文件的属性,包括Last Modified Time、Content-Type 以及自定义属性键值对等。对象大小最多可为 10 TB。

Bucket(空间)

对象存储中 Object 的组织管理单位,每个 Object 都存储在一个 Bucket 中。Bucket 名不能修改。每个用户默认最多创建3个 Bucket。Bucket 名不能重复。可以对 Bucket 进行权限控制。Bucket 内的 Object 个数及总空间大小没有限制。命名规范:

  • 只能包括小写字母和数字
  • 必须以小写字母开头
  • 长度必须在 6-20 字节之间

Region(地域)

Region 表示对象存储的数据中心所在的地域,物理位置。用户可以根据费用、请求来源等综合选择数据存储的 Region。一般来说,距离用户更近的 Region 访问速度更。目前只支持 us-east 地域,一旦指定之后就不允许更改,该 Bucket 下所有的 Object 都存储在对应的数据中心,目前不支持 Object 级别的 Region 设置。

Endpoint(访问域名)

Endpoint 表示对象存储对外服务的访问域名。对象存储以 HTTP RESTful API 的形式对外提供服务,当访问不同的 Region 的时候,需要不同的域名。例如美国东部1区的外网 Endpoint 是 s3-us-east-1.ossfiles.com

Access Key 和 Access Secret

棱束链为每位用户分配一个 Access Key 和 Access Secret,该密钥将在用户向对象存储发起请求时用作签名验证。Access Key 用于标示用户,Access Secret 是用户用于加密签名字符串和 对象存储 服务用来验证签名字符串的密钥。用户在注册之后,可以通过点击 控制台 → 个人中心 → API 页面获取。

最终一致性

同亚马逊 S3一样,棱束链对象存储采用最终一致性模型。例如,如果您对某一个文件执行更新操作,则后续读取可能会返回旧数据或已更新的数据,但不会返回部分或损坏的数据。数据存储三副本,保证了高读取吞吐量和高可用性。PUT 请求成功,则表示数据已安全存储。但是,要做到三副本的一致,需要一点时间。

外网访问地址

用户上传对象后,棱束链会自动为对象创建形如以下样式的访问地址:
美国东部1区:http://s3-us-east-1.ossfiles.com/bucketname/objectname.jpeg

默认域名

用户创建 Bucket 后,系统自动为每一个 Bucket 分配一个默认域名,改 Bucket 的域名形式如下:
美国东部1区默认域名为:s3-us-east-1.ossfiles.com

访问控制(ACL)

空间的权限可以设置为公开和私有。私有表示仅创建者可以读写,公开表示所有人可写,所有人可读。

防盗链

防止陌生人链接对象存储中的数据,避免不必要的资源浪费和资金损失。同时也支持基于 HTTP HEAD 中 Referer 的防盗链方法。可以通过控制台设置全网生效的 Referer 白名单或黑名单。

TempSecret 临时授权

系统模型如下图所示:

业务服务器 -> 通过API申请临时Secret → 返回TempSecret -> 终端用户 -> 使用TempSecret -> 上传到棱束链对象存储

注意:

  • Access Key 和 Access Secret 均不可出现在终端用户的应用程序中,不管是配置文件还是二进制代码
  • Access Key 要保存在安全的位置,不要通过网络传输
  • 原则上,终端用户应用程序只能使用 TempSecret 进行文件的操作

HTTPS 方式安全访问

棱束链对象存储的所有 API 都支持 HTTP 和 HTTPS 两种方式访问。