Aliyun OSS
是什么
对象存储服务(object storage service),一种海量、安全、低成本、高持久的云存储服务。
相关概念
存储类型(storage class)
- 标准:高持久、高可用、高性能的对象存储服务,能够支持频繁的数据访问;
- 低频访问:适合长期保存不经常访问的数据(平均每月访问频率1到2次);
- 归档:适合需要长期保存(建议半年以上)的归档数据,例如档案数据、医疗影像、科学资料、影视素材等;
- 冷归档:适合需要超长时间存放的极冷数据。
类型转换:
- 方式一:通过生命周期规则自动转换Object的存储类型
- 可根据设置时间自动转换类型,一般为常用转换到不常用
- 方式二:通过控制台、OSS工具、SDK手动转换Object的存储类型
- 通过接口转换,但从归档或冷归档转换时需要先解冻(restore)
存储空间(Bucket)
在上传数据(例如文档、图片、音视频等)到OSS之前,您需要在OSS所支持的地域中创建一个存储空间(Bucket),然后将无限数量的对象(Object)上传到该Bucket中。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。
- 扁平结构
- 每个用户可以拥有多个存储空间
- 名称唯一不可修改
- 内部对象数目无限制
对象(Object)
对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。
对象类型包括:
- 通过简单上传生成类型为Normal
- 通过分片上传生成类型为Muitipart
- 通过追加上传生成类型为Appendable,仅支持追加
对象信息包括:
- Key:对象名称,可用于查询对象
- Data:存储的数据,可由任意长度字节组成
- Version ID:对象上传到带版本控制的bucket中后生成的版本识别ID
- Object Meta:元信息,一组键值对,记录了一些属性,如最后修改时间、大小等,同时可自定义
上传文件
-
简单上传:简单上传适用于一次HTTP请求交互即可完成上传的场景,例如小文件(小于5 GB)的上传。
-
分片上传和断点续传:可以将待上传的文件分成多个碎片(Part)分别上传(支持并发上传),上传完成之后再调用接口将这些Part组合成一个Object。若上传过程中出现网络错误导致上传失败,还可以从最后一块成功上传的Part开始继续上传,从而实现断点续传效果。适用于大文件加速上传、网络环境差或流式上传的场景中。
- 注意:上传性能调优(防顺序前缀集中存储特定分区);文件覆盖;分片上传中断的part需要删除
-
上传回调:一种典型应用场景是与授权第三方上传同时使用,客户端在上传文件到OSS的时候指定到服务器端的回调,当客户端的上传任务在OSS执行完毕之后,OSS会向应用服务器端主动发起HTTP请求进行回调,这样服务器端就可以及时得到上传完成的通知从而可以完成诸如数据库修改等操作,当回调请求接收到服务器端的响应之后OSS才会将状态返回给客户端。
-
授权给第三方上传:为了应对【用户---发送--->服务器---转发--->OSS】的场景
- 实现方式1:URL签名:在请求的URL中包含OSS AccessKeyId和Signature字段
- 实现方式2:临时访问凭证:临时访问凭证是通过Security Token Service(STS)来实现授权的一种方式。STS 是为云计算用户提供临时访问令牌的Web服务。通过 STS,可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。
-
表单上传:
不使用表单上传 表单上传 流程对比 网站用户上传简历。网站服务器回应上传页面。简历被上传到网站服务器。网站服务器再将简历上传到OSS。 网站用户上传简历。网站服务器回应上传页面。简历上传到OSS。 - 从流程上来说,使用表单上传,少了一步转发流程,更加方便。
- 从架构上来说,原来的上传都统一走网站服务器,上传量过大时,需要扩容网站服务器。采用表单上传后,直接从客户端上传数据到OSS,上传量过大时,压力都在OSS上,由OSS来保障服务质量。
-
追加上传:前述的上传创建的都是Normal的Object,固定可读不可改,需要上传同名Obj来覆盖达到修改的目的,因此在视频监控、视频直播领域更适合使用追加上传的方式
- RTMP推流上传
下载文件
- 简单下载
- 断点续传下载
- 授权给第三方下载
- 选取内容(OSS Select):可以使用简单的结构化查询语言(SQL)语句选取 OSS 中文件的内容,仅获取需要的数据。使用 OSS Select 可以减少从 OSS 传输的数据量,从而提高数据获取效率,节约时间。
管理文件
-
列举文件
-
拷贝文件
-
解冻文件
-
删除文件
-
管理回源设置:当从OSS获取数据不存在时,到源站获取数据包括两种方式。
- 镜像方式
- 重定向
-
对象标签:使用标签进行分类,可按标签设置生命周期和访问权限等
-
通过目录管理文件
-
使用selectObject查询文件