文章目录
- 1.OSS对象存储基本介绍
- 1.1.OSS对象存储概念
- 1.2.NAS与OSS存储的不同
- 1.3.OSS的应用场景
- 1.4.OSS术语对应表
- 2.购买OSS存储资源包
- 3.KodCloud云盘接入OSS对象存储
- 3.1.创建Bucket存储空间
- 3.2.创建子用户用于管理Bucket
- 3.3.获取用户的AccessKey
- 3.3.为用户设置权限
- 3.4.将Bucket授权给创建的用户管理
- 3.5.配置KodCloud云盘的后台管理接入OSS
- 3.6.在KodCloud中上传文件到OSS中
- 3.7.查看OSS中是否有文件产生
- 3.8.查看OSS中文件的URL地址
- 4.忘记子用户的Key怎么办?
1.OSS对象存储基本介绍
OSS对象存储官方文档:https://help.aliyun.com/product/31815.html
1.1.OSS对象存储概念
OSS对象存储服务全称为(Object Storage Service,OSS),是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。
容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
OSS对象存储提供RESETful API接口,所有的上传和下载文件都是通过API接口完成,只要有网络就可以在任意时间、地点去访问OSS存储中的文件。
OSS对象存储在上传一个大文件时,会对文件进行分片,等所有分片上传到OSS后,再将所有的分片汇聚成一个文件。
1)OSS组件概念
- 存储类型(Storage Class)
- OSS提供四种类型的数据存储,分布式标准、低频访问、归档以及冷归档。
- 标准存储类型提供高持久、高可用、高性能的对象存储服务,可以支撑数据的频繁访问,一般都会选择标准存储。
- 低频访问存储类型适合长期保存不经常访问的数据,价格较低。
- 归档存储类型适合需要长期保存的数据。
- 冷归档存储类型适合需要超长时间存放的数据。
- 在我们购买OSS资源包时会选择使用哪种类型的存储
- 存储空间(Bucket)
- 存储空间相当于资源隔离,用于将不同的应用程序数据存放在不同的存储空间中,一个应用程序一个bucket。
- 存储空间是用于存储对象的容器,每个对象都必须隶属于某个存储空间,存储空间具备各种配置属性,包括地域、访问权限、存储类型等等,可以根据我们的需求为不同的应用程序创建不同的存储空间。
- 对象(Object)
- 对象是OSS存储数据的基本单元,可以理解为存在OSS中的一个文件就是对象。
- 对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。
- 对象由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,例如最后修改时间、大小等信息。
- ObjectKey
- 地域(Region)
- 地域表示OSS所在的物理位置,我们可以将OSS运行在距离用户最近的区域
- 访问域名(Endpoint)
- OSS有外网地址和内网地址,当我们在其他地域的ECS想要读取OSS中的数据时,就需要通过OSS的外网地址进行连接,外网地址是一个域名,每个地域的OSS都有单独的访问域名。
- 通过内网和外网访问同一个地域所需要的域名也是不同的
- 访问密钥(AccessKey)
- AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。
- AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。
- OSS通过使用Key+Secret的对称加密方式来验证请求者的身份,验证成功后才可以访问OSS中的资源。
- AccessKey ID用于标识用户;AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。
2)OSS重要特性
- 版本控制
- 针对存储空间级别的数据保护功能。
- 开启版本控制后,针对数据的覆盖以及删除都会以版本的形式记录下来,当我们误删除文件后,可以在bucket将存储的object恢复任意时刻的版本。
- Bucket Policy
- 主要用于为存储空间授权不同用户的访问权限。
- 例如要对某个账号授权整个存储空间的只读、读写、完全控制等权限。
- 跨区域复制
- 可以跨不同地域的OSS数据中心,将对象资源的创建、更新、删除等操作从源存储空间复制到不同区域的目标存储空间,可以作为数据容灾的方案。
- 数据加密
- 上传文件时,OSS对收到的文件进行加密,再将得到的加密文件持久化保存;下载文件时,OSS自动将加密文件解密后返回给用户,并在返回的HTTP请求Header中,声明该文件进行了服务器端加密。
1.2.NAS与OSS存储的不同
NAS是文件存储系统,是面向ECS实例的存储服务,类似于传统的NFS服务,需要将NAS挂载到ECS服务器中才可以进行文件的存储,NAS必须要和ECS在同一个地域,否则ECS是无法连接到NAS的,也就是说如果我们要将ECS迁移到其他的地区,NAS也必须要进行迁移,否则将无法使用。
OSS是对象存储,提供RESETful API接口,在OSS中存储的每一个文件都有单独的访问地址,我们只需要在程序中配置OSS的地址以及所使用的Bucket,就可以连接到OSS中,即使将来需要迁移ECS到其他地域,OSS也不需要做任何的操作,只要有网络环境就可以从OSS中获取数据。
另外如果我们的网站有CDN加速器,我们再OSS中缓存的程序图片,也可以直接由CDN请求OSS,不需要经过ECS实例。
NAS主要应用于服务器文件存储、容器存储,用户请求到达WEB程序后,程序会在服务器中挂载的某个路径找到NAS中的数据。
OSS主要应用云端数据处理、图片音视频文件存储、WEB程序动静分离静态资源文件存储,OSS就相当一个云存储,只需要请求OSS的域名就可以获取到想要的文件。
1.3.OSS的应用场景
1)图片和音视频等应用的海量存储
WEB应用程序产生大量的文件(图片、文件、音视频)都可以存储在OSS中,OSS提供的存储是海量的,OSS支持流式写入和文件写入两种方式。
如下图所示:网络摄像机是ECS服务器中运行的程序,用户通过网络摄像机录制的视频通过程序直接存储到OSS对象存储中,再通过OSS自带的媒体程序完成视频的转码,当用户需要播放上传的视频时,如果网站有CDN加速器,请求首先会到达CDN加速器,如果CDN中缓存,那么直接将视频文件返回给用户,如果CDN中没有缓存,那么就由CDN直接从OSS中读取视频文件,然后进行播放,无需再经过ECS服务器。
CDN读取OSS中的文件连接的OSS的外网地址,OSS所在的地域不同外网地址也会有所不同。
OSS支持用户端直接写入和读取。
2)网页或者移动应用的静态和动态资源分离
大多数的WEB应用程序或者移动APP都会进行动静分离,有的公司是将静态资源直接部署在一台服务器中,提供特定的域名进行访问。
我们也可以直接将静态资源存放在OSS中,当请求时动态数据时经过SLB—>ECS,然后将数据回传给用户,当请求的是静态数据时,请求首先达到CDN加速器,如果CDN加速器中有静态资源的缓存,那么直接回传给用户,如果CDN中不存在静态资源的缓存,CND会直接从OSS中读取静态资源,然后回传给用户,无需再SLB以及ECS中读取静态资源,从某种程度上减少了ECS的流量。
3)云端数据处理
当数据文件存储在OSS对象存储中后,比如图片以及音视频,可以直接通过其他程序对数据进行二次处理,比如将图片清晰度进行调整、将音视频文件进行转码、压缩等等操作。
OSS就相当于一个云端,其他程序都从这个云端获取数据。
1.4.OSS术语对应表
英文 | 中文 |
---|---|
Bucket | 存储空间 |
Object | 对象或者文件 |
Endpoint | OSS 访问域名 |
Region | 地域或者数据中心 |
AccessKey | AccessKeyId和AccessKeySecret的统称,访问密钥 |
Put Object | 简单上传 |
Post Object | 表单上传 |
Multipart Upload | 分片上传 |
Append Object | 追加上传 |
Get Object | 简单下载 |
Callback | 回调 |
Object Meta | 文件元信息。用来描述文件信息,例如长度,类型等 |
Data | 文件数据 |
Key | 文件名 |
ACL (Access Control List) | 存储空间或者文件的权限 |
2.购买OSS存储资源包
在使用OSS之前首先需要购买一个存储资源包,提供存储空间,如果不购买存储资源包直接创建Bucket,存储空间中的数据量就是按量计费,购买了存储包之后,数据空间的大小就是按照资源包进行付费。
OSS存储资源包的空间可以按需再后期镜像扩容。
在控制台中搜索OSS,进入OSS的控制台。
1)在资源包管理中,点击购买资源包。
2)资源包类型选择标准LRS存储包,地域选择中国大陆通用,存储包规格选择40GB,套餐为标准存储包(中国大陆),购买时长选择半年。
3)确认订单信息然后点击去支付。
4)资源包购买完成
3.KodCloud云盘接入OSS对象存储
OSS对接应用系统的大致实现步骤:
- 1.创建Bucket存储空间
- 2.创建子用户并授予OSS的管理权限,获取子用户的AccessKey以及AccessSecret
- 3.将Bucket存储空间授权给子用户进行管理
- 4.配置应用系统接入OSS
KodCloud在接入OSS时需要填写如下信息,我们需要带着这些信息去创建OSS存储。
3.1.创建Bucket存储空间
1)创建Bucket
点击Bucket列表—>创建Bucket。
2)配置Bucket
Bucket名称为kodcloud-storage—>地域为华北2—>存储类型为标准存储—>关闭同城冗余存储—>不开通版本控制。
读写权限为私有—>数据加密选择无—>不开通实时目录查询—>不开启定时备份—>最后点击确定完成bucket的创建。
其中最为重要的就是读写权限,一定要选择私有,否则对于数据是不安全的,权限为私有会在文件url中带入验证身份的key,公共读为所有人都可以读取bucket中的文件,公共读写最不安全,所有人都可以向bucket中写入数据。
3)查看创建的Bucket
Bucket创建后会自动跳转到当前Bucket的管理页面,在概览中我们可以获取到访问OSS的域名,其中有内网域名和外网域名,并且不同的bucket也有单独的访问域名。
3.2.创建子用户用于管理Bucket
Bucket存储空间已经创建完成,我们不能通过阿里云的管理员账号让程序去连接,因此还需要创建一个子用户,由这个子用户去管理Bucket,为用户分配一些权限,然后将Bucket授权给这个用户,我们就可以通过这个用户的Key和Secret访问Bucket,在Bucket中读取或者写入数据。
1)前往RAM控制台
点击权限管理—>访问控制RAM—>前往控制台。
2)创建用户
点击身份管理中的用户—>创建用户。
填写用户名称—>勾选启用 AccessKey ID 和 AccessKey Secret—>点击确定完成用户创建。
3.3.获取用户的AccessKey
创建完用户后会获取到用户AccessKey,一定要将AccessKey复制保存,否则刷新页面后,无法再次获取Key的信息。
用户登录名称 kodcloud-oss@1069086789271022.onaliyun.com
AccessKey ID:LTAI5tRMCtvCFthMNXKsKLqE
AccessKey Secret:wWrCbFTCuxxxx6RooH8RbXkbfpni
3.3.为用户设置权限
1)再次点击用户列表,找到我们创建的kodcloud-oss用户,点击添加权限。
2)为用户添加一个AliyunOSSFullAccess的权限,这个权限表示对OSS有管理员级别的权限,然后点击确定。
3)在用户详情页面就可以看到我们添加的权限。
3.4.将Bucket授权给创建的用户管理
1)点击权限管理—>Bucket授权策略—>设置。
2)点击新增授权—>授权资源选择整个Bucket—>授权用户选择刚刚创建的子账号—>授权操作为简单设置勾选完全控制—>点击确定完成授权。
3)授权成功。
3.5.配置KodCloud云盘的后台管理接入OSS
进入到Kodclou云盘的后台管理—>找到存储管理—>点击新增—>存储类型为阿里云OSS—>名称填写为阿里云OSS存储—>空间大小为40GB—>Access Key ID填写子用户的Key ID—>Access Key Secret填写子用户的Key Secret—>Bucket填写kodcloud-storage存储空间—>地域节点填写OSS的内网访问域名—>存储目录为/kodbox—>点击保存。
存储添加完成。
3.6.在KodCloud中上传文件到OSS中
进入Kodclou云盘系统—>找到阿里云OSS存储—>点击上传文件。
3.7.查看OSS中是否有文件产生
点击Bucket中的文件管理,可以看到已经创建了一个kodbox的目录。
进入目录后就可以看到用户上传的文件。
3.8.查看OSS中文件的URL地址
在OSS中的每个文件都有独立的访问地址,我们的Bucket权限为私有,在URL中会有Key认证信息,必须通过程序的认证才可以访问到文件中的内容。
点击任意文件即可查看该文件的URL地址。
4.忘记子用户的Key怎么办?
子用户创建完成后Accesskey刷新后会消失,如果后期忘记了怎么办呢?也是有解决方法的。
点击子用户—>在下面有一个创建AccessKey—>会弹出新的AccessKey。
之后可以将忘记的Key删除即可。