OSS服务和⾃建服务器存储对⽐
1 OSS
1.1 什么是OSS
  阿⾥云对象存储服务(Object Storage Service,简称OSS),是阿⾥云提供的海量、安全、低成本、⾼可靠的云存储服务。它是⼀个分布式的对象存储服务,提供的是⼀个Key-Value对形式的对象存储服务。⽤户可以根据Object的名称(Key)唯⼀的获取该Object的内容。它具有与平台⽆关的RESTful API接⼝,能够提供99.99999999%的服务持久性。可以在任何应⽤、任何时间、任何地点存储和访问任意类型的数据。OSS适合各种⽹站、开发企业及开发者使⽤。
1.2 OSS中的⼀些基本概念
1.2.1 存储空间(Bucket)
  存储空间是⽤于存储对象(Object)的容器,所有的对象都必须⾪属于某个存储空间。可以设置和修改存储空间属性⽤来控制地域、访问权限、⽣命周期等,这些属性设置直接作⽤于该存储空间内所有对象,因此可以通过灵活创建不同的存储空间来完成不同的管理功能。
同⼀个存储空间的内部是扁平的,没有⽂件系统的⽬录等概念,所有的对象都直接⾪属于其对应的存储空间。
每个⽤户可以拥有多个存储空间。
存储空间的名称在OSS范围内必须是全局唯⼀的,⼀旦创建之后⽆法修改名称。
存储空间内部的对象数⽬没有限制。
1.2.2 对象/⽂件(Object)
  对象是OSS存储数据的基本单元,也被称为OSS的⽂件。对象由元信息(Object Meta),⽤户数据(Data)和⽂件名(Key)组成。对象由存储空间内部唯⼀的Key来标识。对象元信息是⼀个键值对,表⽰了对象的⼀些属性,⽐如最后修改时间、⼤⼩等信息,同时⽤户也可以在元信息中存储⼀些⾃定义的信息。
  根据不同的上传⽅式,对象的⼤⼩限制是不⼀样的。分⽚上传最⼤⽀持48.8TB的对象⼤⼩,其他的上传⽅式最⼤⽀持5GB。
  对象的⽣命周期是从上传成功到被删除为⽌。在整个⽣命周期内,对象信息不可变更。重复上传同名的对象会覆盖之前的对象,因
此,OSS不⽀持修改⽂件的部分内容等操作。
  OSS提供了追加上传功能,⽤户可以使⽤该功能不断地在Object尾部追加写⼊数据。
1.2.3 Region(地域)
  Region表⽰OSS的数据中⼼所在的地域,物理位置。⽤户可以根据费⽤、请求来源等综合选择数据存储的Region。⼀般来说,距离⽤户更近的Region访问速度更快。⽬前已开通的Region详见[1]。
  Region是在创建Bucket的时候指定的,⼀旦指定之后就不允许更改,该Bucket下所有的Object都存储在对应的数据中⼼,⽬前不⽀持Object级别的Region设置。
1.2.4 Endpoint(访问域名)
  Endpoint表⽰OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同的Region的时候,需要不同的域名。通过内⽹和外⽹访问同⼀个Region所需要的Endpoint也是不同的。
1.2.5 AccessKey(访问密钥)
  AccessKey,简称AK,指的是访问⾝份验证中⽤到的AccessKeyId和AccessKeySecret。OSS通过使⽤AccessKeyId和AccessKeySecret对称加密的⽅法来验证某个请求的发送者⾝份。AccessKeyId⽤于标识⽤户,AccessKeySecret是⽤户⽤于加密签名字符串和OSS⽤来验证签名字符串的密钥,其中AccessKeySecret必须保密。
  更多基本概念详见[2]
1.3 功能概览
1.4 ⽂件上传
1.4.1 简单上传
  适⽤场景
  简单上传指的是⽤户使⽤OSS API中的Put Object⽅法上传单个Object,可以适⽤在任何⼀次HTTP请求交互即可完成上传的场景,⽐如⼩⽂件的上传。
  上传限制
⼤⼩限制:Object的⼤⼩不能超过 5GB。
命名限制
使⽤UTF-8编码。
长度必须在1-1023字节之间。
不能以“/”或者“\”字符开头。
1.4.2 ⼤⽂件上传
  OSS⽀持单个⽂件的⼤⼩,从0~48.8TB。当我们上传⼤⽂件时,可能会有以下场景:
单个⽂件超过5GB时,⽆法使⽤简单上传⽅法。
⽂件较⼤,虽然⼩于5GB,但⽹络环境较差,经常出现⽹络原因造成超时或者链接断开等错误的时候,上传容易失败。
  以上情况下,可以使⽤分⽚断点续传⽅式或ossutil⼯具上传。
1.4.
2.1 分⽚断点续传
  当使⽤SDK或API上传⼤⽂件时,可以使⽤分⽚断点续传⽅式。分⽚断点续传⽅式使⽤于以下场景:
恶劣的⽹络环境。如⼿机端,当出现上传失败的时候,可以对失败的Part进⾏独⽴的重试,⽽不需要重新上传其他的Part。
断点续传。中途暂停之后,可以从上次上传完成的Part的位置继续上传。
加速上传。要上传到OSS的本地⽂件很⼤的时候,可以并⾏上传多个Part以加快上传。
流式上传。可以在需要上传的⽂件⼤⼩还不确定的情况下开始上传。这种场景在视频监控等⾏业应⽤中⽐较常见。
  在这种上传⽅式下,Object的⼤⼩是由Part来决定的。最⼤⽀持10000块Part,每块最⼩100KB(最后⼀块可以⽐100KB⼩),最⼤5GB。
1.4.
2.2 ossutil上传
  当需要使⽤⼯具(⽽不是使⽤API、SDK编写代码)上传单个或多个⼤⽂件时,可以使⽤⼯具ossutil。
1.4.
2.3 ossimport上传
  如果需要上传⼤批量的⽂件(包括⼤⽂件)到OSS,也可以使⽤ossimport⼯具。
大文件发送
说明:当⽂件数⽬不是特别多,建议优先使⽤ossutil。
1.5 使⽤限制
1.6 OSS的优势
1. ⽅便、快捷的使⽤⽅式
提供标准的RESTful API接⼝、丰富的SDK包、客户端⼯具、控制台。可以像使⽤⽂件⼀样⽅便地上传、下载、检索、管理⽤于Web ⽹站或者移动应⽤的海量数据。
不限⽂件数量和⼤⼩。可以根据所需存储量⽆限扩展存储空间,解决了传统硬件存储扩容问题。
⽀持流式写⼊和读出。特别适合视频等⼤⽂件的边写边读业务场景。
⽀持数据⽣命周期管理。可以⾃定义将到期数据批量删除或者转⼊到低成本的归档服务。
1. 强⼤、灵活的安全机制
灵活的鉴权,授权机制。提供STS和URL鉴权和授权机制,以及⽩名单、防盗链、主⼦账号功能。
提供⽤户级别资源隔离机制和多集同步机制(可选)。
1. 丰富、强⼤的增值服务
图⽚处理:⽀持jpg、png、bmp、gif、webp、tiff等多种图⽚格式的转换,以及缩略图、剪裁、⽔印、缩放等多种操作。
⾳视频转码:提供⾼质量、⾼速并⾏的⾳视频转码能⼒,让⾳视频⽂件轻松应对各种终端设备。
内容加速分发:OSS作为源站,搭配CDN进⾏加速分发,具有稳定、⽆回源带宽限制、性价⽐⾼、⼀键配置的特点。
1.7 OSS的缺点
  ⽂件系统是⼀种典型的树状索引结构,可以很轻易的⽀持⽂件夹的操作,⽐如重命名⽬录、删除⽬录、移动⽬录等。对于OSS来说,可以通过⼀些操作来模拟类似的功能,但是代价⾮常昂贵。⽐如重命名⽬录,希望将test1⽬录重命名成test2,那么OSS的实际操作是将所有以test1/开头的Object都重新复制成以test2/开头的Object,这是⼀个⾮常消耗资源的操作。因此在使⽤OSS的时候要尽量避免类似的操作。
  OSS保存的Object不⽀持修改(追加写Object需要调⽤特定的接⼝,⽣成的 Object也和正常上传的Object类型上有差别)。⽤户哪怕是仅仅需要修改⼀个字节也需要重新上传整个Object。⽽⽂件系统的⽂件⽀持修改,⽐如修改指定偏移位置的内容、截断⽂件尾部等,这些特点也使得⽂件系统拥有⼴泛的适⽤性。但另外⼀⽅⾯,OSS能⽀持海量的⽤户并发访问,⽽⽂件系统会受限于单个设备的性能。
  使⽤OSS应该充分发挥其优点,即海量数据处理能⼒,优先⽤来存储海量的⾮结构化数据,⽐如图⽚、视频、⽂档等。
1.8 产品定价
1.8.1 存储类型
  OSS提供标准、低频访问、归档三种存储类型。
1. 标准存储类型
  提供通⽤的对象存储服务,适合频繁访问、有热点存在的各类⾳视频、图⽚、⽹站静态资源的存储,⽀持⾼吞吐计算场景,适合各类计算资源的存储。
2. 低频访问存储类型
  适合长期保存、较少访问的数据,适合各类移动应⽤、智能设备、企业数据的备份,低频访问⽀持实时数据访问。
3. 归档存储类型
  在三种存储类型中单价最低,适合需要长周期保存的档案数据、医疗影像、科学资料、影视素材,能有效优化长期存储成本。保存为归档存储类型的数据,恢复到可读取状态需要等待1分钟的解冻时间。
1.8.1.2 计费⽅式
  阿⾥云OSS采⽤两种计费⽅式:按量付费(后付费)和包年包⽉(预付费)。
  按量付费
  ⽤户先在阿⾥云账户充值,系统每⼩时统计前⼀⼩时的实际⽤量并进⾏结算,从账户余额中扣除实际消费⾦额,实际使⽤量可以通过控制台查看。按量付费⽀持所有的存储类型。OSS 的计量项包括存储量、流量、请求次数、数据处理。
  包年包⽉
  已使⽤的OSS资源在已购买的资源包规格内不收费,超过部分按量付费。包年包⽉⽬前只⽀持标准存储类型。
详细价格总览和价格计算器见[3][4]
2 ⾃建服务器
2.1 ⾃建服务器的优势
1. 在沟通环节和应对突发问题的速度上具有先天优势
2.2 ⾃建服务器的缺点
1. 成本⾼,需在公司单独构建机房和租⽤专线上⽹,需投⼊⾼昂的专线及⽹络相关设备费⽤,和配备专业的维护⼯程师。
2. 稳定性差,需要有专业的团队来进⾏维护,以达到365天全天候运营服务和监控服务;
3. 安全性低,专线接⼊易受攻击;
4. 环境差,租⽤专线很难做到拥有多条⾼速光纤⽹络,不易达到南北互联互通,稳定性⾼、速度快、带宽⼤,电⼒持续供应不能保证和
达到两路市电,没有标准设施和24⼩时运作的机房专⽤空调系统,不能做到稳定的⽹络带宽、恒温、防尘、防⽕、防潮、防静电等良好的运⾏环璄。
5. 扩展性差。
3 oss与⾃建存储对⽐
4 总结
若需⾃建⾄服务器程度,建议使⽤oss
若仅⾃建上传接⼝,建议⾃建,成本更低