阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。
OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
您可以使用阿里云提供的API、SDK包或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)、冷归档存储(Cold Archive)或者深度冷归档(Deep Cold Archive)作为不经常访问数据的存储方式。
OSS作为云上数据湖可提供高带宽的下载能力。在部分地域,可为单个阿里云账号提供高达100 Gbps的内外网总下载带宽,旨在满足AI和大规模数据分析的需求。关于各地域的带宽说明,请参见OSS带宽。
前置概念
阅读本文前,您可能需要了解如下概念:
快速了解OSS
短视频
观看以下视频,快速了解OSS。
常见问题
查看OSS常见问题,了解其他用户经常咨询和关注的一些问题。
OSS工作原理
数据以对象(Object)的形式存储在OSS的存储空间(Bucket )中。如果要使用OSS存储数据,您需要先创建Bucket,并指定Bucket的地域、访问权限、存储类型等属性。创建Bucket后,您可以将数据以Object的形式上传到Bucket,并指定Object的文件名(Key)作为其唯一标识。
OSS以HTTP RESTful API的形式对外提供服务,访问不同地域需要不同的访问域名(Endpoint)。当您请求访问OSS时,OSS通过使用访问密钥(AccessKey ID和AccessKey Secret)对称加密的方法来验证某个请求的发送者身份。
Object操作在OSS上具有原子性和强一致性。
存储空间
存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。
对象
对象是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,对象没有文件目录层级结构的关系。对象由元数据(Object Meta)、用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的Key来标识。对象元数据是一组键值对,表示了对象的一些属性,例如文件类型、编码方式等信息,同时用户也可以在元数据中存储一些自定义的信息。
对象名称
在各语言SDK中,ObjectKey、Key以及ObjectName是同一概念,均表示对Object执行相关操作时需要填写的Object名称。例如向某一存储空间上传Object时,ObjectKey表示上传的Object所在存储空间的完整名称,即包含文件后缀在内的完整路径,如填写为
abc/efg/123.jpg
。地域
Region表示OSS的数据中心所在物理位置。用户可以根据费用、请求来源等选择合适的地域创建Bucket。一般来说,距离用户更近的Region访问速度更快。更多信息,请参见OSS已经开通的Region。
访问域名
Endpoint表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同的Region的时候,需要不同的域名。通过内网和外网访问同一个Region所需要的Endpoint也是不同的。例如杭州Region的外网Endpoint是oss-cn-hangzhou.aliyuncs.com,内网Endpoint是oss-cn-hangzhou-internal.aliyuncs.com。具体的内容请参见各个Region对应的Endpoint。
访问密钥
AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。OSS通过使用AccessKey ID和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。AccessKey ID用于标识用户;AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。对于OSS来说,AccessKey的来源有:
Bucket的拥有者申请的AccessKey。
被Bucket的拥有者通过RAM授权给第三方请求者的AccessKey。
被Bucket的拥有者通过STS授权给第三方请求者的AccessKey。
更多AccessKey介绍请参见创建AccessKey。
原子性和强一致性
Object操作在OSS上具有原子性,操作要么成功要么失败,不存在中间状态的Object。当Object上传完成时,OSS即可保证读到的Object是完整的,OSS不会返回给用户一个部分上传成功的Object。
Object操作在OSS同样具有强一致性,当用户收到了上传(PUT)成功的响应时,该上传的Object进入立即可读状态,并且Object的冗余数据已经写入成功。不存在上传的中间状态,即执行read-after-write,却无法读取到数据。对于删除操作,用户删除指定的Object成功之后,该Object立即不存在。
关于OSS基本概念的完整介绍,请参见基本概念。
OSS重要特性
版本控制
版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。您在错误覆盖或者删除文件(Object)后,能够将Bucket中存储的Object恢复到任意时刻的历史版本。更多信息,请参见版本控制概述。
Bucket Policy
Bucket拥有者可通过Bucket Policy授权不同用户以何种权限访问指定的OSS资源。例如您需要进行跨账号或对匿名用户授权访问或管理整个Bucket或Bucket内的部分资源,或者需要对同账号下的不同RAM用户授予访问或管理Bucket资源的不同权限,例如只读、读写或完全控制的权限等。关于配置Bucket Policy的具体操作,请参见通过Bucket Policy授权用户访问指定资源。
跨区域复制
跨区域复制(Cross-Region Replication)是跨不同OSS数据中心(地域)的Bucket自动、异步(近实时)复制Object,它会将Object的创建、更新和删除等操作从源存储空间复制到不同区域的目标存储空间。跨区域复制功能满足Bucket跨区域容灾或用户数据复制的需求。更多信息,请参见跨区域复制概述。
数据加密
服务器端加密:上传文件时,OSS对收到的文件进行加密,再将得到的加密文件持久化保存;下载文件时,OSS自动将加密文件解密后返回给用户,并在返回的HTTP请求Header中,声明该文件进行了服务器端加密。更多信息,请参见服务器端加密。
客户端加密:将文件上传到OSS之前在本地进行加密。更多信息,请参见客户端加密。
数据永久保存
除以下情况以外,OSS默认永久保存上传到Bucket的数据:
通过OSS控制台、API、SDK、ossutil或者ossbrowser等工具手动删除数据。更多信息,请参见删除文件。
通过生命周期规则在指定时间内自动删除数据。更多信息,请参见基于最后一次修改时间的生命周期规则。
OSS停服后15天内未补足欠款。更多信息,请参见欠费停服说明。
关于OSS功能特性的完整介绍,请参见功能特性。
OSS使用方式
OSS提供多种灵活的上传、下载和管理方式。
通过控制台管理OSS
OSS提供了Web服务页面,您可以登录OSS控制台管理您的OSS资源。更多信息,请参见OSS管理控制台概览。
通过API或SDK管理OSS
OSS提供RESTful API和各种语言的SDK开发包,方便您快速进行二次开发。更多信息,请参见OSS API参考和OSS SDK参考。
通过工具管理OSS
OSS提供图形化管理工具ossbrowser、命令行管理工具ossutil、FTP管理工具ossftp等各种类型的管理工具。更多信息,请参见OSS常用工具。
通过云存储网关管理OSS
OSS的存储空间内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。如果您想要像使用本地文件夹和磁盘的方式来使用OSS存储服务,可以通过配置云存储网关来实现。更多信息,请参见云存储网关产品详情页面。
OSS计费
对象存储OSS支持以下计费方式。
按量付费:所有计费项默认采用按量付费。按照各计费项的实际用量结算费用,先使用,后付费,适用于业务用量经常有变化的场景。更多信息,请参见按量付费。
资源包:针对部分常用计费项支持专用的资源包。预先购买针对不同的计费项推出的优惠资源包,在费用结算时,优先从资源包抵扣用量,先购买,后抵扣,适用于业务用量相对稳定的场景。更多信息,请参见资源包概述。
预留空间:针对有地域属性Bucket产生的标准存储(本地冗余)容量费用以及ECS快照存储费用的预付费产品。预先购买预留空间,在费用结算时,优先从预留空间抵扣用量,先购买,后抵扣。更多信息,请参见预留空间。
无地域属性预留空间:针对无地域属性Bucket产生的标准存储(本地冗余)容量费用的预付费产品。预先购买无地域属性的预留空间,在费用结算时,优先从无地域属性预留空间抵扣用量,先购买,后抵扣。更多信息,请参见无地域属性预留空间。
存储容量单位包SCU:针对存储费用支持SCU。SCU除了用于抵扣OSS的存储费用,还可用于抵扣多种云存储产品存储容量费用。更多信息,请参见存储容量单位包SCU。
相较于按量付费,资源包和SCU具有一定的优惠折扣。
超出资源包、预留空间、无地域属性预留空间、存储容量单位包SCU抵扣额度的用量,计入按量付费,会产生后付费账单,请根据您的所需服务、业务体量,购买适合额度的资源包、预留空间、无地域属性预留空间、存储容量单位包SCU。
其他相关服务
将数据存储到OSS后,您可以使用阿里云提供的其他产品和服务对其进行相关操作。
以下是您会经常使用到的阿里云产品和服务:
图片处理:对存储在OSS上的图片进行格式转换、缩放、裁剪、旋转、添加水印等各种操作。更多信息,请参见快速使用OSS图片处理服务。
云服务器ECS:提供简单高效、处理能力可弹性伸缩的云端计算服务。更多信息,请参见ECS产品详情页面。
内容分发网络CDN:将OSS资源缓存到各区域的边缘节点,利用边缘节点缓存的数据,提升同一个文件被边缘节点客户大量重复下载的体验。更多信息,请参见CDN产品详情页面。
E-MapReduce:构建于ECS上的大数据处理的系统解决方案,基于开源的Apache Hadoop和Apache Spark,方便您分析和处理自己的数据。更多信息,请参见E-MapReduce产品详情页面。
在线迁移服务:您可以使用在线迁移服务将第三方数据源,例如亚马逊AWS、谷歌云等数据轻松迁移到OSS。更多信息,请参见在线迁移服务使用教程。
离线迁移服务:如果您有TB或PB级别的海量数据需要上传到OSS,但本地的网络带宽不够,扩容成本高,可以使用闪电立方离线数据迁移服务。更多信息,请参见离线迁移(闪电立方)介绍。
智能媒体管理IMM:场景化封装数据智能分析管理,为云上文档、图片、视频数据,提供一站式数据处理、分析、检索等管控体验。更多信息,请参见智能媒体管理介绍。
其他阿里云存储服务
除了对象存储以外,阿里云还提供文件存储、块存储等类型的存储服务,满足您不同场景下的业务需求。更多信息,请参见阿里云存储服务介绍和阿里云存储产品文档。
关于阿里云存储服务的客户案例、解决方案等,请参见阿里云存储产品家族。