对象存储OSS
1. OSS概述
阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。
它具有与平台无关的RESTful API接口,能够提供99.999999999%
(11个9)的数据可靠性和99.99%的服务可用性。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
- 易用性:简单易用,便于管理,深度集成数据处理服务
- 高可靠:多份副本保存,有效应对个类硬件故障;异地容灾:提供跨区域复制功能和灾备方案,支持数据自动备份在不同城市,实现异地容灾能力;冗余架构:OSS全冗余的基础架构,消除单点隐患,保障服务的高可用性。为数据持久存储提供稳定保障。
- 强安全:多重访问控制细粒度的授权管理。Bucket|Object 权限控制;Access ID 和请求签名;VPC网络链路层访问控制;RAM&STS主子账号授权。
- 低成本:数据按照冷热分层提供最具性价比的存储方式。
OSS在飞天架构中的位置
1.1 OSS的基本概念
- Object(对象/文件) :用户上传到OSS的每个文件都是一个Object,使用Put Object上传方式文件最大不能超过5GB,使用multipart上传方式Object大小不能超过48.8TB。
- Bucket(存储空间):一个用户可以创建最多30个Bucket,Bucket名在整个OSS中具有全局唯一性且不可修改,每个Object必须包含在Bucket中,每个Bucket中存放的Object的数量没有限制,大小总和不超过2PB,一个应用可以对应一个或多个Bucket。
- Service:提供给用户的虚拟存储空间,用户可以在这个存储空间中拥有一个或多个Bucket。
- AccessKeyID & AccessKeySecret:用于标识用户,为访问OSS做签名验证。
- 访问域名(Endpoint):表示OSS对外服务的访问域名。
1.2 OSS的优势
1.3 OSS的存储类型
2. OSS的应用
2.1OSS的简单使用
1.创建Bucket
- 用户创建一个Bucket 时,可以根据费用单价、请求来源分布、响应延迟等方面的考虑为该bucket选择所在的数据中心。Bucket 一旦创建完成后,就不可以修改所属的数据中心。
- OSS 只支持Bucket 级别的数据中心设置,不支持针对Object 设置数据中心。
- Bucket 所在的数据中心确定后,该Bucket 下的所有Object 将一直存放在该数据中心,除非用户自己将它们搬迁到其它数据中心。
- OSS提供了Bucket级别的权限访问控制:公共读写、公共读、私有。创建Bucket时默认为private权限。可以通过OSS的Put Bucket Acl接口修改该Bucket的权限。
2.上传文件
- 如果上传的文件与存储空间中已有的文件重名,则会覆盖已有文件。
- 通过OSS控制台上传小于5GB的文件
- 通过SDK或API使用Multipart Upload方法上传大于5GB的文件。
3.下载文件
- 简单下载:简单下载即下载已经上传的文件(Object),Object下载是使用HTTP的GET请求来完成的。
- 断线续传下载:OSS提供了从Object指定的位置开始下载的功能,在下载大的Object的时候,可以分多次下载。如果下载中断,重启的时候也可以从上次完成的位置开始继续下载。
- 将私有Bucket内部的Object授权给第三方下载的时候,不应该直接将AccessKey提供给下载者,而应该使用URL签名和临时访问凭证两种方法。
4.删除文件
如果您不再需要存储所上传的文件,请将其删除以免进一步产生费用。
2.2OSS的实践应用
1.数据备份与跨域复制:
- 异地容灾:通过跨区域复制功能可在另一数据中心维护副本,实现异地容灾。
- 数据合规:在远距离的OSS数据中心之间复制数据以满足数据合规性要求
2.安全防护与管理:
OSS适用于存储各种类型的静态资源,为防止OSS的资源被恶意盗用,OSS提供了几种安全防护功能,还可以集成安全类产品进行安全防护。
- 防盗链:目前OSS提供的防盗链方法主要有以下两种:1.设置Referer。该操作通过控制台和SDK均可进行,用户可根据自身需求进行选择。2.签名URL,适合习惯开发的用户。
- 权限控制:Bucket私有的情况下,需要通过签名URL访问object。由于签名URL存在一个过期时间,所以签名URL会定期过期,增加了一直恶意下载的成本,同时用户需要集成OSS签名URL的API,有一定的开发成本。
- 跨域设置:设置跨域访问,用户就可以直接上传到OSS而无需中转。
- 异常流量排查:可以通过OSS 管理控制台->Bucket名称->热点统计,查看哪些IP发起的请求,是否存在异常IP发起了请求。
除了上述OSS本身提供的安全防护功能,还可以结合安全产品进行安全防护如:高防防护OSS,WAF结合OSS使用等。
3.云端数据处理
数据增值服务,为您的存储数据挖掘价值
上传文件到OSS后,您可以配合媒体转码服务(MTS),图片处理服务(IMG),批量计算服务、离线数据处理服务(ODPS)充分挖掘您数据的价值,引领从IT到DT的变革。
- 富媒体数据处理:自带图片处理/自定义函数等增值服务,配合MTS实现视频转码/截帧
- 存储+计算:与阿里云数据计算产品打通,可直接调用计算服务挖掘您的数据价值
4.CDN加速与动静分离
传统动静不分离的产品架构,其性能会随着系统访问量的增长而受到限制甚至遭遇瓶颈。
5.RAM与STS
- RAM和STS是阿里云提供的权限管理系统。
- RAM主要的作用是控制账号系统的权限。通过使用RAM可以将在主账号的权限范围内创建子用户,给不同的子用户分配不同的权限从而达到授权管理的目的。
- STS是一个安全凭证(Token)的管理系统,用来授予临时的访问权限,这样就可以通过STS来完成对于临时用户的访问授权。
3. 小结
1. 什么是对象存储OSS?
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
2. 什么是Object,什么是Bucket?
**对象(Object)**是OSS存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。
**存储空间(Bucket)**是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。
3. OSS有几种存储类型,分别是什么?
OSS有四种存储类型,分别为:标准存储、低频访问存储、归档存储、冷归档存储。
4. OSS提供的安全防护有哪些?
提供企业级多层次安全防护,包括服务端加密、客户端加密、防盗链、通过Bucket Policy限制IP黑白名单访问、细粒度权限管控、日志审计、WORM特性等。
更多详情见对象存储OSS官方文档