1. 对象存储概述
1) 什么是对象存储OSS
• 阿里云对象存储服务(OSS)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。
• OSS可以被理解成一个即开即用、无限大空间的存储集群。相比传统自建服务器存储,OSS在可靠性、安全性、成本和数据处理能力方面都有着突出的优势。
如上图所示,OSS存储是将数据以对象(Object)的形式存储在存储空间(Bucket)中,Object指的是一个文件和描述该文件的任何元数据,Bucket是保存Object的容器。
2) OSS相关的操作
• 创建存储空间Bucket,并向存储空间中上传文件,通常上传5G以内的文件使用PutObject接口,超过5G使用分块上传Multipard,单个文件最大可达48.8T。
• 获取已上传文件的地址,进行文件的分享和下载。
• 修改存储空间或文件的属性或元信息,为其设置相应的权限(ACL:私有/公共读/公共读写)。
• 在对象存储OSS控制台进行基础和高级OSS操作。
• 通过开发工具包SDK或直接在应用程序中调RESTful API,进行基础和高级OSS操作。
2. OSS存储类型
OSS存储主要有四大类:标准类型、低频访问类型、归档类型和冷归档类型。
1) 标准类型
提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问。
• 适用于吞吐量大,热点文件、需要频繁访问的业务场景
• 持久性:99.9999999999%(12个9)
• 最低存储时间:无
适用场景:移动应用、大型网站、分享类的图片/音视频应用、大数据分析等。
2) 低频访问类型
提供较低存储成本和实时访问特性的对象存储服务。
• 数据访问实时,读取频率较低的业务场景;
• 持久性:99.9999999999%(12个9);
• 最低存储时间:30天
适用场景:移动设备、监控数据、应用与企业数据备份、网盘应用等。
3) 归档类型
提供归档数据的长期存储。
• 数据恢复有等待时间,数据有存储时长要求
• 持久性:99.9999999999%(12个9)
• 最低存储时间:60天
适用场景:各种长期保持的档案数据、医疗影像、影视素材等。
4) 冷归档类型
提供了高持久性的对象存储服务,存储费用在四种存储类型中最低。
• 数据恢复有等待时间,数据有存储时长要求
• 持久性:99.9999999999%(12个9)
• 最低存储时间:180天
适用场景:适用于需要较长时间存放的极冷数据,例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等业务场景。
3. 安全控制:Bucket/Object权限控制
OSS提供ACL(Access Control List)权限控制方法,OSS ACL提供Bucket/Object级别的权限访问控制,目前有三种访问权限:
• public-read-write(公共读写):任何人都可以对Bucket/Object内数据进行读写操作。
• public-read(公共读):只有数据的拥有者可以对Bucket/Object内数据进行读写操作,其他人只能对该Bucket中的文件进行读操作。
• private(私有):仅数据的拥有者可以对Buket/Object内数据进行读写操作。
创建Bucket时默认为private权限,可以通过OSS的Put Bucket ACL接口修改该Bucket的权限。
Object外链地址的构成规则
如果Bucket的权限为公共读或者公共读写时,Object的访问规则如下:
http://<你的bucket名字>.<数据中心服务域名>/<你的object名字>
示意图
说明
bucket:bucket名称
host:基于不同网络有所区别,如:
• 公网:oss-cn-hangzhou.aliyuncs.com
• 内网:oss-cn-hangzhou-internal.aliyuncs.com
• VPC:oss-cn-hangzhou-internal.aliyuncs.com
object:对象文件名,如果文件在文件夹里则放入完整文件路径(比如:aaa/bbb/aliyun-logo.png)。
4. OSS使用快速入门:下载文件
OSS提供三种文件下载方式:
1) 简单下载
指使用OSS API的GetObject接口,下载已上传的文件(Object),适用于一次HTTP请求交互即可完成下载的场景。
2) 断点续传下载
OSS提供了从Object指定的位置开始下载的功能,在下载大的Object的时候,可以分多次下载。如果下载中断,重启的时候也可以从上次完成的位置开始继续下载。
3) 授权给第三方下载
将私有Bucket内部的Object授权给第三方下载的时候,不应该直接将AccessKey提供给下载者,而应该使用URL签名和临时访问凭证两种方法。
5. OSS实践
实践1:数据备份与跨域复制
能够提供:
• 异地容灾:通过跨区域复制功能可在另一数据中心维护副本,实现异地容灾。
• 数据合规:在远距离的OSS数据中心之间复制数据以满足数据合规性要求。
实践2:CDN加速与动静分离
传统动静不分离的产品架构,其性能会随着系统访问量的增长而受到限制甚至遭遇瓶颈。
传统网站架构示意 网站动静分离架构示意
a) 动态请求vs静态请求
• 静态请求:对所有请求者者反馈的数据都一样。
• 动态请求:动态请求需要将请求发送到服务器进行处理后再返回结果。
b) 网站动静分离架构
将动态数据保留在ECS中,动态请求仍然返回ECS,而将静态数据存储在OSS中,这样静态请求与动态请求分离,提升用户访问体验,实现成本可控。
实践3:RAM与STS
RAM(Resource Access Management)的主要作用是控制账号系统的权限,STS(Security Token Service)是一个临时访问权限管理服务,RAM用户通过STS获取可以自定义时效和访问权限的临时身份凭证,即安全令牌(STS Token)。
如下图所示,AppServer向STS获取临时授权令牌,STS是被RAM和OSS信任的,STS将令牌返回APPServer后传递给Device-001,Device-001使用临时令牌访问OSS,这样既解决了ECS的带宽问题,又保障了OSS的安全性。