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

[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://./

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

访问Object

可直接将URL链接写入HTML中访问Object

例如:

例如: ping flink-runtime.obs.cn-north-1.myhuaweicloud.com

bucket = flink-runtime

endpoint = obs.cn-north-1.myhuaweicloud.com

例如: checkpoint.dir=obs://${OSS_AK}:${OSS_SK}@${OSS_ENDPOINT}/${OSS_BUCKET}/jobs/checkpoint/

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默认页面

为空,则不启用静态网站托管

ACPER:http://osstest.acper.net/

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)

产品主页:https://www.qiniu.com/products/kodo

产品价格:https://www.qiniu.com/prices/kodo

[国内] 阿里云 OSS

https://www.aliyun.com/product/oss

http://api.aliyun.com

[国内] 华为云 OBS

https://www.huaweicloud.com/product/obs.html

[全球] Amazon S3

https://aws.amazon.com/cn/s3/

[开源] MiniIO

https://min.io

https://github.com/minio

Y 大型OSS云平台的安装与使用

安装 华为云 OBS 客户端 On Linux

参考文献

对象存储服务 OBS/ 成长地图 - 华为云

登录 ECS 服务器

通过SHELL命令,下载安装 OBS 客户端

cd /opt

wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz

ls -la /opt

tar -xvf obsutil_linux_amd64.tar.gz

ls -la /opt

# mv /opt/obsutil_linux_amd64_5.4.11 /opt/obsutil

mv /opt/obsutil_linux_amd64_5.5.12 /opt/obsutil

ls -la /opt/obsutil

通过SHELL命令,配置 OBS 的 AK / SK

需根据实际情况配置(建议创建一个公共的 AK、SK)

/opt/obsutil/obsutil config -i=${OSS_AK} -k=${OSS_SK} -e=${OSS_ENDPOINT}

-i 参数 即 AK

-k参数 即 SK

-e 参数 即 OBS桶所在地区

配置成功的样例:(仅供参考)

root@test-ecs:/opt# /opt/obsutil/obsutil config -i=TOHT20H9OHXAIMB4xxNy -k=r0ijXdVL7or2xyaFxxxxh3xxZTvewU2O53cJFHz6 -e=obs.cn-north-4.myhuaweicloud.com:443

Config file url:

/root/.obsutilconfig

Update config file successfully!

root@test-ecs:/opt#

X 参考文献

第五章:对象存储OSS笔记 - Zhihu/徐强

[linux] 域名解析失败案例定位 [Errno -2] Name or service not known - CSDN

相关推荐

XBOX现在联机情况如何(人数)
正规det365登录网站

XBOX现在联机情况如何(人数)

🎯 08-28 💯 179
那个软件算命准又免费
365bet赌城投注

那个软件算命准又免费

🎯 07-04 💯 754
北京最嗨的酒吧是哪里?北京最嗨酒吧推荐
365bet赌城投注

北京最嗨的酒吧是哪里?北京最嗨酒吧推荐

🎯 06-30 💯 869