产品功能
本页面介绍了OBS支持的常用功能特性。关于各功能支持的地域(Region)信息,可通过控制台查询详情。
在使用对象存储服务OBS之前,建议您先了解对象存储服务OBS的基本概念,以便更好地理解对象存储服务OBS提供的各项功能。
工具
OBS提供OBS Browser+、obsutil、obsfs等多种实用工具,满足不同场景下数据迁移和数据管理需求。
您可以通过上述工具,轻松完成OBS资源管理,包括:OBS桶创建,并行文件系统挂载,对象上传下载等。关于更多信息,请参见OBS工具指导文档。
API
OBS提供了REST(Representational State Transfer)风格API,支持您通过HTTP/HTTPS请求调用,实现创建、修改、删除桶,上传、下载、删除对象等操作。关于更多信息,请参见OBS提供的API。
SDK
OBS提供多种开发语言的SDK,帮助您轻松实现二次开发。目前支持:Java、Python、C、Go、BrowserJS、.NET、Android、IOS、PHP、Node.js。关于更多信息,请参见OBS SDK参考文档。
Data+
Data+是OBS提供的一项数据处理服务,可以对OBS内存储的数据,按照用户编排的工作流进行自动化处理(如解析、转码、截图等)。
Data+提供图形化界面,方便用户直观便捷地构建数据处理流程,同时提供了预置的数据处理服务模板和自定义函数能力,覆盖数据处理的各种场景。关于更多信息,请参见数据工坊 DWR。
桶配置信息复制
OBS提供了桶配置信息复制功能,方便您在创建新桶之后,快速将已有桶的配置信息复制到新桶中。
支持复制的桶配置信息包括:桶策略、CORS规则、生命周期规则、事件通知规则、数据回源规则、图片处理样式、在线解压规则。关于更多信息,请参见复制桶配置信息。
数据回源
您可以利用数据回源功能,实现向OBS请求数据不存在时,通过回源规则自动从源站获取对应数据。关于更多信息,请参见使用镜像回源获取源站数据。
桶管理
桶是OBS中存储对象的容器。每个桶都有自己的存储类别、访问权限、所属区域等属性,用户可以在不同区域创建不同存储类别和访问权限的桶,并配置更多高级属性来满足不同场景的存储诉求。
OBS提供创建、列举、搜索、查看、删除等基本功能,帮助您便捷地进行桶管理。关于更多信息,请参见桶管理。
对象管理
对象(Object)是OBS中数据存储的基本单位。一个对象实际是一个文件的数据与其相关属性信息(元数据)的集合体。用户上传至OBS的数据都以对象的形式保存在桶中。OBS提供上传、下载、列举、搜索、断点续传、多段操作等基本功能,满足您各个场景的对象管理需求。关于更多信息,请参见对象管理。
并行文件系统
并行文件系统(Parallel File System)是OBS提供的一种经过优化的高性能文件系统,提供毫秒级别访问时延,以及TB/s 级别带宽和百万级别的IOPS,能够快速处理高性能计算(HPC)工作负载。
您可以按照标准的OBS接口读取并行文件系统中的数据,也可以利用obsfs工具将创建的并行文件系统挂载到云端Linux服务器上,并能像操作本地文件系统一样对并行文件系统内的文件和目录进行在线处理。关于更多信息,请参见并行文件系统。
图片处理
图片处理特性(Image Processing)是OBS为用户提供的稳定、安全、高效、易用、低成本的图片处理服务。您可以在任何时间和地点对存储在对象存储中的图片进行处理,并且可以快速获取到处理后的图片。
您可以使用图片处理功能对存放在OBS中的图片进行瘦身、剪切、缩放、增加水印、转换格式等操作。关于更多信息,请参见图片处理。
存储类别
OBS针对桶和对象提供了标准存储、低频访问存储、归档存储、深度归档存储(受限公测中)存储类别,满足不同场景下客户对存储性能和成本的不同诉求。
- 标准存储访问时延低和吞吐量高,因而适用于有大量热点文件(平均一个月多次)或小文件(小于1MB),且需要频繁访问数据的业务场景,例如:大数据、移动应用、热点视频、社交图片等场景。
- 低频访问存储适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景,例如:文件同步/共享、企业备份等场景。与标准存储相比,低频访问存储有相同的数据持久性、吞吐量以及访问时延,且成本较低,但是可用性略低于标准存储。
- 归档存储适用于很少访问(平均一年访问一次)数据的业务场景,例如:数据归档、长期备份等场景。归档存储安全、持久且成本极低,可以用来替代磁带库。为了保持成本低廉,数据恢复时间可能长达数分钟到数小时不等。
- 深度归档存储适用于长期不访问(平均几年访问一次)数据的业务场景,其成本相比归档存储更低,但相应的数据恢复时间将更长,一般为数小时。
您可以在创建桶时指定桶的默认存储类别,也可以在上传对象时指定对象的存储类别,同时也可以通过生命周期管理修改对象的存储类别。关于更多信息,请参见存储类别简介。
权限管理
OBS通过IAM权限、桶/对象策略和ACL三种方式配合进行权限管理。您可以对不同的账号和用户授予不同的访问权限,也可以对桶和对象设置不同的策略及ACL来控制桶和对象的读写权限。关于更多信息,请参见权限管理。
自定义域名
您可以将自定义域名绑定到OBS桶,然后使用自定义域名访问桶中的数据。例如,您需要将网站中的文件迁移到OBS,并且不想修改网页的代码,即保持网站的链接不变,此时可以使用自定义域名绑定功能。
如果您需要通过HTTPS的方式访问桶的自定义域名,可以在OBS控制台为自定义域名配置HTTPS证书。
关于更多信息,请参见通过自定义域名访问桶。
CDN加速
您使用CDN加速域名后,可配置网站加速、文件下载加速和点播加速。CDN加速功能将存储在OBS中的数据缓存到终端用户附近的CDN节点上,让身处各地的终端用户都可以快速访问存储在OBS中的数据。
当用户更新OBS中存储的数据时,CDN中缓存的过时数据也需要同步刷新,可以使用CDN自动刷新功能来自动通知CDN更新缓存数据。
关于更多信息,请参见通过CDN加速域名访问桶。
跨区域复制
跨区域复制是指通过创建跨区域复制规则,在同一个账号下,将一个桶(源桶)中的数据自动、异步地复制到不同区域的另外一个桶(目标桶)中。跨区域复制为您提供跨区域数据容灾的能力,满足您数据复制到异地进行备份的需求。关于更多信息,请参见使用OBS进行同账号跨区域桶之间数据复制。
静态网站托管
静态网站通常仅包含静态网页,以及可能包含部分可在客户端运行的脚本,如JavaScript、Flash等。
您可以将静态网站文件上传至OBS桶中,并对这些文件赋予匿名用户可读权限,然后将该桶配置成静态网站托管模式,以实现在OBS上托管静态网站。托管完成后,您就可以通过OBS桶域名访问该静态网站。关于更多信息,请参见静态网站托管。
跨域资源共享
跨域资源共享(CORS)是由W3C标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端Web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(Same Origin Policy,SOP)的存在,不同域之间的网站脚本和内容是无法进行交互的。OBS支持CORS规范,允许跨域请求访问OBS中的资源。
您可以通过CORS支持,使用JavaScript和HTML5来构建Web应用,直接访问OBS中的资源,而不再需要代理服务器做中转。也可以使用HTML5中的拖拽功能,直接向OBS上传文件,展示上传进度,或是直接从Web应用中更新内容。
托管在不同域中的外部网页、样式表和HTML5应用,现在可以引用存储在OBS中的Web字体或图片,让这些资源能被多个网站共享。
关于更多信息,请参见配置CORS实现跨域访问OBS。
防盗链
一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。因此,产生了防盗链技术。
为了防止用户在OBS的数据被其他人盗链,OBS支持基于HTTP Header中表头字段Referer的防盗链方法,同时支持访问白名单和访问黑名单的设置。关于更多信息,请参见配置防盗链防止非法流量盗用。
对象分享
您可以将存放在OBS中的文件或文件夹以临时URL的形式分享给所有用户。分享强调临时性,所有分享的URL都是临时URL,存在有效期。您可以通过OBS控制台以及客户端工具OBS Browser+设置文件临时分享。如果想要设置永久的权限,请通过桶策略或对象策略实现。关于更多信息,请参见分享对象。
归档数据直读
默认情况下OBS中归档存储类别的对象需要恢复后才能下载,您也可以开启桶归档数据直读功能,开启后存储类别为归档存储的对象可以直接下载,无需提前恢复。归档数据直读会收取相应的费用。关于更多信息,请参见归档数据直读。
多AZ
您可以在创建桶的时候选择将桶中数据冗余存储在多个可用区,以获得更高的数据可靠性。OBS采用Erasure Code(EC,纠删码)算法做数据冗余,不是以副本的形式存储。
多AZ开关只能在创桶的时候指定,创建成功后无法修改。关于更多信息,请参见创建桶。
服务端加密
OBS提供服务端加密功能,支持对桶配置默认加密功能,配置后,上传到桶中的对象都会自动进行加密,也可以在上传对象时设置服务端加密。OBS仅会对开启桶默认加密之后上传的对象进行加密,不会改变开启前已经存在的对象的加密状态。
用户上传对象时,数据会在服务端加密成密文后存储;用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。
您可以在创建桶时开启桶默认加密,也可以在已创建的桶中根据需要开启桶默认加密。
使用服务端加密功能,可以提高数据的安全性。OBS提供SSE-KMS、SSE-C和SSE-OBS三种服务端加密方式。您可以在上传对象时选择是否对当前上传的对象进行服务端加密。关于更多信息,请参见服务端加密概述。
生命周期管理
生命周期管理是指通过配置指定的规则,实现定时删除桶中的对象或者定时转换对象的存储类别。
生命周期管理可适用于以下典型场景:
- 周期性上传的日志文件,可能只需要保留一个星期或一个月,到期后要删除它们。
- 某些文档在一段时间内经常访问,但是超过一定时间后便可能不再访问了。这些文档需要在一定时间后转化为低频访问存储/归档存储或者删除。
- 批量删除桶中的大量对象。
关于更多信息,请参见生命周期概述。
事件通知
OBS提供的DIS通知功能,主要面向大数据场景,要求OBS与数据接入服务(DIS)及其他大数据相关服务结合使用。当OBS桶中触发了对象上传、下载、删除等操作事件时,OBS将事件通知发送给DIS,再通过DIS通道将通知分发给下游的大数据处理服务,如数据湖工厂(DLF)。大数据处理服务接到通知后,利用委托的OBS权限对OBS中更新的数据进行实时分析处理。
OBS作为云服务事件源将产生的云服务事件发送到事件网格(EventGrid,简称EG),事件规则对云服务事件进行过滤和转换,通过转换后的事件触发事件目标(即函数工作流服务中的函数)。
关于更多信息,请参见事件通知。
标签
桶标签用于标识OBS中的桶,以此来达到对OBS中的桶进行分类的目的。当为桶添加标签时,该桶上所有请求产生的计费话单里都会带上这些标签,从而可以针对话单报表做分类筛选,进行更详细的成本分析。例如:某个应用程序在运行过程会往桶里上传数据,我们可以用应用名称作为标签,设置到被使用的桶上。在分析话单时,就可以通过应用名称的标签来分析此应用的成本。关于更多信息,请参见桶标签。
对象标签用于对桶中的对象进行分类,您可以在上传对象时添加标签,也可以为已有对象添加标签。关于更多信息,请参见对象标签。
桶清单
OBS桶清单可以用来帮助您管理桶内对象,您可以配置一个清单规则,定期扫描桶中指定的对象或拥有相同前缀的对象,生成这些对象的元数据内容,如对象大小、修改时间、存储类别等,并以CSV格式保存到指定的桶中。关于更多信息,请参见桶清单。
日志管理
出于分析或审计等目的,用户可以开启日志记录功能。通过访问日志记录,桶的拥有者可以深入分析访问该桶的用户请求性质、类型或趋势。当用户开启一个桶的日志记录功能后,OBS会自动对这个桶的访问请求记录日志,并生成日志文件写入用户指定的桶(即目标桶)中。关于更多信息,请参见配置桶的日志记录。
追加写对象
您可以通过AppendObject接口在指定桶内的一个Appendable对象尾追加上传数据。
通过AppendObject创建的对象为Appendable对象,通过PutObject创建的对象是Normal对象。Normal对象上传结束后内容是固定的,只能读取但无法修改。对于一些数据实时不断产生的场景,可以使用追加写的方式在对象尾不断追加内容,每次追加的数据都能够即时可读。关于更多信息,请参见追加写对象。
对象元数据
元数据(Metadata)为描述对象属性的信息,是一组名称值对,用作对象管理的一部分。
OBS的元数据分为两种:系统定义的元数据、自定义元数据。
- 系统定义的元数据分为两种:系统控制和用户控制。如Last-Modified日期等数据由系统控制,不可修改;如ContentLanguage、Expires等用户控制的元数据支持进行修改。
- 自定义元数据:OBS支持用户使用以“x-obs-meta-”开头的消息头来加入自定义的元数据,以便对对象进行自定义管理。
您可以添加、修改或删除桶中已上传对象的用户控制的元数据。关于更多信息,请参见配置、编辑、查看对象元数据。
桶配额
您可以设置桶空间配额,用以限制单个桶可存储的最大数据量,最大可设置为263-1,单位Byte(字节)。新创建的桶默认不限制配额。关于更多信息,请参见设置桶配额。
碎片管理
OBS采用分块上传的模式上传数据,在下列情况下(但不仅限于此)通常会导致数据上传失败而产生碎片:网络条件较差,与OBS的服务器之间的连接经常断开;上传过程中,人为中断上传任务;设备故障;突然断电等特殊情况。
上传失败而产生的碎片会存储在OBS中,需手动清理,以节省存储空间。关于更多信息,请参见清理碎片。
企业项目
企业项目是对多个资源实例和服务进行归类管理的单位,不同云服务区的资源和服务可以归到一个企业项目中。企业可以根据不同的部门或项目组,将相关的资源放置在相同的企业项目内进行管理。
您可以在创建桶时指定桶所属的企业项目,更方便的进行桶资源和权限管理。关于更多信息,请参见创建桶时指定桶所属的企业项目。
多版本控制
您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。
默认情况下,OBS中新创建的桶不会开启多版本功能,向同一个桶上传同名的对象时,新上传的对象将覆盖原有的对象。如果需要保留多个版本对象,请开启多版本控制功能。关于更多信息,请参见多版本控制。
监控
用户在使用OBS的过程中会不断发送PUT、GET类的请求,产生上传、下载流量,也可能会遇到服务端返回的错误响应。用户可使用云监控服务(Cloud Eye)监控自己的OBS桶,执行自动实时监控、告警和通知操作,帮助您实时掌握桶中所产生的请求、流量和错误响应等信息,并合理规划使用计划。关于更多信息,请参见使用CES监控OBS桶。
审计
云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,您可以通过CTS对OBS中桶和对象的各类事件操作记录进行收集、存储和查询,用于安全分析、合规审计、资源跟踪和问题定位等。关于更多信息,请参见使用CTS审计OBS操作事件。
敏感操作保护
OBS控制台支持敏感操作保护,开启后执行删除桶等敏感操作时,系统会进行身份验证,进一步保证OBS配置和数据的安全性。关于更多信息,请参见开启或关闭敏感操作。
在线解压
OBS支持在线解压,您可以将批量文件打包成ZIP包后上传至OBS,上传之后压缩包可以自动解压。关于更多信息,请参见在线解压。
WORM
OBS控制台支持为对象设置WORM策略,以保护对象在指定时间内不被删除,不被篡改。关于更多信息,请参见配置对象锁定(WORM)防止对象被更改或删除。
资源包升配
如果您在使用OBS的过程中需要更高规格的资源包,可以对当前资源包进行升配操作。关于更多信息,请参见资源包升配。
双端固定
使用“双端固定”特性,即同时设置VPC终端节点策略与桶策略,可以对OBS的资源提供VPC粒度的权限控制。
一方面,设置VPC终端节点策略可以限制VPC中的服务器(ECS/CCE/BMS)访问OBS中的特定资源;另一方面,设置桶策略可以限定OBS中的桶被特定VPC中的服务器访问,从而在请求来源和被访问资源两个角度保障了安全性。关于更多信息,请参见配置双端固定实现VPC粒度的访问控制。
上传回调
您可以通过回调,获取对象上传后的相关信息,例如获取对象是否上传成功,获取对象Etag、上传后大小、上传后对象所在桶等信息。 关于更多信息,请参见使用上传回调获取对象信息。
阻止桶公开访问
公开访问是指请求者无需拥有特定权限或身份验证即可访问桶和桶内数据,存在数据泄露和恶意访问导致大量外网流量的风险。为了避免这些风险,OBS支持为桶配置阻止公开访问功能,以确保数据的安全性。借助阻止公开访问功能,桶拥有者可以集中轻松限制资源的公开访问。关于更多信息,请参见阻止桶公开访问。