[OSS] 对象存储(OSS)概述

0 序

  • 本文属笔记型博文。

目标读者:博主本人

  • 本文OSS的描述内容,主要参考阿里云的OSS产品。

1 对象存储-概述

1.1 什么是对象存储OSS?

  • 对象存储服务Object Storage Service)是阿里云等云平台提供的海量、安全、低成本、高可靠的云存储服务,提供与平台无关RESTful API接口,提供99.999999999%的服务持久性

  • 优势:
  • 海量、安全、低成本、高可靠
  • 按量收费,无需担心存储容量

  • 主要功能:
  • 任何时间、任何地点、任何平台上对数据进行上传和下载
  • 通过API或WEB页面方式管理海量数据
  • 弹性扩展:海量存储空间,随时增加
  • 大规模:支持同一时间内高并发,大流量的读写访问
  • 图片处理:支持缩略、裁剪、水印、压缩和格式转换
  • 按量付费:存储量、流量、请求次数付费

1.2 对象存储OSS的特点

OSS产品特点一:稳定

  • 服务可用性不低于99.9%
  • 规模自动扩展
  • 数据三冗余备份,持久性99.999999999%

OSS产品特点二:低成本

  • OSS使用成本很低
  • 内网地址访问免流量费
  • 无需运维投入

OSS产品特点三:安全

  • 结合云盾防DDos系统
  • 多种安全认证机制
  • 提供访问日志,有助于追查非法访问

OSS产品特点四:大规模、高性能

  • 存储容量无限扩展
  • 处理能力弹性增加
  • 多线BGP网络,各运营商访问流畅

1.3 对象存储OSS的应用场景

  • 场景1:OSS适合作为应用程序的持久化存储
  • 持久保存文件(附件、图片、视频)
  • RDS数据库MySQL
  • 场景2:数据处理
  • 图片处理:提供裁剪、旋转、水印、缩放
  • 媒体转码:音视频格式转换
  • 场景3:海量存储
  • 管理音视频资源
  • 网络摄像机直存
  • 管理海量的物联网设备数据(例如:车联网领域————CAN报文等)
  • 软件系统的日志
  • 场景4:动静态资源分离
  • 动态资源:数据库记录
  • 静态资源:图片、附件、音视频资源的超低延时传输

1.4 对象存储OSS的计费模式

OSS费用构成(按量付费[主要类型]、包年包月)

  • 结算方式:
  • 按量付费:
  • 开通OSS后,默认付费方式
  • 按小时时间
  • 计费公式:实际资源使用量*每小时单价
  • 包年包月:
  • 资源包的形式提供,超出部分按量付费
  • 资源包类型:
  • 1、存储包、下行流量包、回源流量包三种类型
  • 2、地域资源包和全国通用资源包两大类
  • 存储费用:
  • 标准存储类型
  • 实际存储量
  • 低频/归档存储类型
  • 实际存储量
  • 存储实际未满指定天数的存储容量
  • 数据取回量
  • 流量费用:
  • 外网流出流量
  • CDN回源流出流量
  • 跨区域复制流量
  • 请求费用:
  • 请求次数
  • 数据处理费用:
  • 图片处理
  • 视频截帧

2 对象存储的概念与原理

2.1 基本概念

OSS数据组织结构

  • OSS数据组织结构

Bucket/桶

  • 定义
  • 同一用户、同一地域创建的存储空间不超过30个,名称全局唯一
  • 存储空间一旦创建,名称、所处地域、存储类型不能修改
  • 单个存储空间的容量不限制
  • Bucket的解释说明:
  • Bucket是OSS上的命名空间
  • Bucket名称在整个OSS服务中具有全局唯一性,不能修改
  • 一个应用,例如图片,可以对应一个或多个Bucket中
  • 一个用户在同一地域下最多可以创建30个Bucket,每个Bucket中存放的Object没有限制,存储容量没有限制
  • Bucket命名规则:
  • 只能包括小写字母、数字或短横线
  • 必须以小写字母或数字开头和结尾
  • 长度必须在3-63字节之间
  • Bucket的使用:
  • 创建Bucket
  • 设置Bucket权限
  • 查看Bucket信息
  • 删除Bucket信息

Object

  • 定义
  • 每个文件都是一个Object
  • 文件大小限制
  • 控制台最大不超过5G,断点续传方式
  • 上传的文件大小不超过48.8TB
  • OSS支持上传同名文件,但会覆盖已有文件
  • Object的解释说明:
  • Object是OSS存储数据的基本单元,也称为OSS的文件
  • Object由元信息(Object Meta),用户数据(Data),文件名(Key)组成,对象由存储空间内部唯一的Key来标识。
  • 用户可根据自己的需要在元信息中存储一些自定义信息
  • 根据不同的上传方式,Object的大小限制是不一样的,分片上传最大支持48.8TB的对象大小,其他的上传方式最大支持5GB
  • Object展现形式为文件或文件夹
  • Object命名规则:
  • 使用UTF-8编码
  • 长度必须在1-1023字节之间
  • 不能以“/”或者“\”字符开头
  • 区分大小写
  • OSS控制台可以上传小于5G的文件,大于5G通过SDK或者API分片上传
  • 获取文件访问地址
  • Bucket或Object的读写权限为非私有,可以通过URL来访问该文件

Bucket或Object的读写权限为私有,OSS按照URL有效时间生成带签名字符串的URL

  • OSS Object 的使用 :设置文件HTTP头

HTTP标准属性

名称 描述
Content-Type 该Object文件类型
Content-Encoding 指定该Object被下载时的内容编码格式
Cache-Control 指定该Object被下载时的网页缓存行为
Content-Disposition 指定该Object被下载时的名称
Content-Language 指定该Object被下载时的内容语言编码
Expires 过期时间
  • OSS Object 的使用 : 用户自定义元数据(User Meta)

  • OSS Object 的使用 : 删除文件

  • 单个删除,指定删除某个Object
  • 批量删除,控制台批量删除一次最多可指定1000个Object
  • 自动删除,使用生命周期管理来完成
  • OSS Object 的使用 : 碎片管理
  • 碎片
  • 碎片是使用分片上传模式,需要调用Compute Ultipart Upload将这些碎片组合成一个完整的Object
  • 可通过控制台查看或删除产生的碎片

AK(AccessKey ID & Secret)

  • 用于标识用户,为访问OSS做签名验证

Endpoint(访问域名)

  • OSS对外服务的访问域名
  • HTTP RESTful API对外提供服务
  • 访问不同地域的时候,需要不同的域名
  • 同一地域下,内外网的Endpoint也是不同的

2.2 OSS 访问的Bucket、域名和数据中心

  • Bucket数据中心的关系
  • Bucket是地域内作用的资源,可按照费用单价,请求来源分布,网络延迟
  • Bucket一旦创建完成,不可修改所属的数据中心
  • OSS支持Bucket级别的数据中心设置,不支持Object级别设置数据中心
  • Bucket访问域名

Bucket的三级域名(API GetService)

  • 域名构成规则是:Bucket 名字 + . + EndPoint
  • EndPoint依据Bucket所在地域的不同,内外网访问方式的有所区别

  • Bucket内网访问
  • 只有ECS实例可通过Bucket内网地址访问
  • ECS实例与Bucket在同一地域,如不在同一地域,需使用外网Bucket外网域名访问

  • Object访问地址构成规则

Bucket权限为公共读或公共读写时,Object的访问规则如下:

http://<bucket名字>.<endpoint>/<object名字>

例如: http://acper.oss-cn-beijing.aliyuncs.com/acper.jpg

访问Object

可直接将URL链接写入HTML中访问Object
例如:<img src="http://acper.oss-cn-beijing.aliyuncs.com/acper.jpg">

2.3 OSS 自定义域名绑定

  • 域名绑定说明:
  • OSS Bucket未绑定域名时,通过浏览器访问Object的URL,则为:强制下载模式
  • 支持OSS域名绑定CName,目前仅支持OSS三级域名访问访问,即配置方式为Bucket_name.endpoint
  • 绑定的域名,需提供工信部备案号
  • 每个Bucket可以绑定20个域名
  • 可通过域名TXT记录的方式验证域名所有权

例如:http://osstest.acper.net

  • 访问地址:

2.Y OSS的其他设置

2.Y.1 防盗链设置

  • 适用场景:为了减少存储于OSS数据被他人盗链而产生额外费用

  • 防盗链设置:

  • OSS是按量收费的服务
  • OSS基于HTTP Header中的字段Referer的防盗链方法
  • 每个Refer白名单使用换行符,支持通配符(*,?)
  • 1、白名单为空
  • 不会检查Referer字段是否为空
  • 2、白名单不为空
  • 设置了不允许Referer字段为空的规则,则只有Referer属于白名单的请求被允许
  • 设置了允许Referer字段为空的规则,则Referer为空的请求和符合白名单的请求被允许,其他请求会被拒绝。如果使用浏览器直接访问,需设置Referer字段为空。

2.Y.2 静态网站托管

  • 适用场景:网站静态内容存储在OSS Bucket中

  • 静态网站托管

  • OSS支持静态网站托管
  • 通过控制台将存储空间配置成静态网站托管模式
  • 支持索引和404默认页面
  • 为空,则不启用静态网站托管

2.Y.3 图片处理

  • 图片服务特点:

海量、安全、低成本、高可靠的图片处理服务
调用简单:RESTful接口调用
不受时间、地点、设备的限制
随OSS服务一并开通

  • 图片服务提供功能:

图片缩放、裁剪、旋转;
添加图片,文字,图文混合水印;
图片格式转换
自定义图片处理样式
通过管道顺序调用多种图片处理功能
获取图片信息

  • 服务规则:

  • 通过URL的形式(RESTful)

  • Bucket:用户的IMG频道

  • endpoint:用户的Bucket所在数据中心的访问域名

  • Object:用户操作图片的基本数据单元是Object

  • action:用户对图片的操作

  • parame:用户对图片操作对应的参数

  • 多个action之间的组合形式

  • 常用action列表:

  • 图片服务概念:
  • 样式 : 为了避免URL过长,action保存成别名,即样式style
    URL方式访问

分隔符方式访问

分隔符支持-、_、/、!

2.Y.4 安全控制

  • 数据安全:

三副本机制,盘古分布式文件系统,提供物理层面的高可靠性

  • 安全控制:

OSS提供Bucket、Object级别的权限访问控制

  • 防盗链:
  • OSS是按量付费服务
  • OSS基于HTTP Header中的字段Referer的防盗链方法
  • 每个Referer白名单使用换行符,支持通配符(*、?)
  • 服务器加密存储:
  • OSS支持在服务器端对用户上传的数据进行加密编码
  • 数据上传,对数据进行加密编码
  • 数据下载,对数据进行解密,下载
  • 支持加密的操作包括:
  • Put Object:简单上传
  • Copy Object:复制Object
  • Initiate Multipart Upload:分片上传
  • 客户端加密SDK:
  • SDK在本地进行数据加密
  • 阿里云KMS托管用户主密钥,上传对象时指定KMS用户的主密钥ID
  • 使用用户自主管理密钥,用户自主生成并保管加密密钥
  • AK方式加解密

2.Y.5 对象存储OSS的API

  • OSS API使用:
  • 使用RESTful接口,推荐使用SDK来调用
  • 通过向OSS client类设定Endpoint,加入请求参数,系统返回结果
  • 请求结构:

访问地址:EndPoint(http://oss-cn-hangzhou.aliyuncs.com

  • 返回的格式:数据格式只有XML格式

阿里云API网址:http://api.aliyun.com

2.x 对比分析:OSS vs 传统自建存储服务器

对比项 对象存储OSS 自建服务器存储
可靠性 服务设计可用性不低于99.9%
规模自动扩展,不影响对外服务
数据设计持久性不低于99.999999999%
数据自动多重冗余备份
受限于硬件可靠性,易出问题,一旦出现磁盘坏道,容易出现不可逆转的数据丢失。
人工数据恢复困难、耗时、耗力
安全 提供企业级多层次安全防护
多用户资源隔离机制,支持异地容灾机制。
提供多重鉴权和授权机制及白名单、防盗链、主/子账号功能
需要购买清洗和黑洞设备
需要单独实现安全机制
成本 多线BGP骨干网络(中国移动、联通、移动教育网等),无带宽限制,上行流量免费
无需运维人员与托管费用,0成本运维
存储受硬盘容量限制,需人工扩容
单线或双线接入速度慢,有带宽限制,峰值时需人工扩容
需专人运维,成本高
数据处理能力 提供图片处理、音视频转码、内容加速分发(CDN)、鉴黄服务、归档服务等多种数据增值服务,并不断丰富中 需要额外采购,单独部署

3 OSS产品一览

  • [国内] 七牛云 Kodo OSS

对象存储产品(Kodo OSS)

  • [国内] 阿里云 OSS
  • [国内] 华为云 OBS

  • [全球] Amazon S3

  • [开源] MiniIO

X 参考文献

posted @ 2024-03-28 23:18  千千寰宇  阅读(90)  评论(0编辑  收藏  举报