存储桶(Bucket)是存储文件(Object)的容器。对象存储系统的每个文件(Object)都必须包含在一个存储桶中。对象存储提供的是基于桶和文件的扁平化存储方式,桶中的所有文件都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。
您可以设置存储桶的属性,用来控制数据存储位置、访问权限、生命周期等,这些属性设置直接作用于该存储桶内的所有文件,因此您可以通过灵活的属性设置,来创建不同的存储桶,完成不同的管理功能。每个用户最多可以建立10个存储桶。用户只有对存储桶拥有相应的权限,才可以对其进行操作,这样保证了数据的安全性,防止非授权用户的非法访问。
存储桶属性
OOS提供Bucket级别的权限控制,默认情况下,只有Bucket的创建者才有该Bucket的读写权限。用户也可以设置其他的访问策略,比如对一个Bucket可以设置公共读策略,允许所有人对其都有读权限。
Bucket目前有3种访问权限:私有、公共读、公共读写。各自的含义如下:
- 私有:只有根用户和具有相应权限的子用户可以对该存储桶内的文件进行读/写/删除操作(包括Get、Put和Delete Object),其他人(包括匿名访问)只有通过Bucket Policy授权或分享链接才可访问该存储桶内的文件。
- 公共读:只有根用户和具有相应权限的子用户可以对该存储桶内的文件进行写/删除操作(包括Put和Delete Object)。任何人(包括匿名访问)都可以对该存储桶内的文件进行读操作,这有可能造成您数据的外泄以及费用激增,请慎用该权限。
- 公共读写:任何人(包括匿名访问)都可以对该存储桶内的文件进行读/写/删除操作(包括Get、Put和Delete Object)。
注意配置公共读写权限可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可能会侵害您的合法权益,除特殊场景外,不建议您配置公共读写权限。如果想使用访问权限为公共读写的存储桶,请联系天翼云客服评估审核后开通此功能。
区域属性
OOS的资源池分布在全国多个省、市、自治区及直辖市的资源池,这些资源池间的存储桶(Bucket)、文件(Object)、访问密钥(AccessKeyID和SecretAccessKey)信息互通,可以实现全国数据的就近读取和写入。你可以通过设置区域属性,选择存放数据的地域。
注意创建存储桶(Bucket)时选择的数据位置和调度策略可以在此进行修改,索引位置无法进行修改。 如果您可见的数据位置只有一个,那么也无法修改。
安全策略
安全策略定义OOS资源的访问权限,作用于所配置的存储桶及存储桶内文件。OOS存储桶拥有者通过安全策略可为IAM用户或其他帐号授权存储桶及存储桶内文件的操作权限,具体包括:
- 允许/拒绝Bucket级别的权限。
- 允许/拒绝Object级别的权限。
存储桶的安全策略是由效果、被授权用户、资源、动作和条件5个桶策略基本元素共同决定,详见Bucket Policy元素。
防盗链
为了避免恶意程序或者不良网站使用OOS内的资源URL去盗刷公网流量或者盗用资源,增加用户使用成本,因此产生了防盗链技术,防止用户的数据被其他人盗链。
OOS支持基于HTTP Header中表头字段Referer的防盗链方法,通过检测数据请求的来源网页来限制Bucket内资源的访问权限,避免Bucket内的资源被其他人盗用。OOS同时支持访问白名单和访问黑名单的设置。
说明OOS的防盗链功能是通过安全策略来实现的。
网站
OOS支持通过静态网站托管功能,将您的静态网站托管到OOS的存储桶(Bucket),并使用Bucket的访问域名访问这个网站。您也可以通过网站设置,使用已经备案的静态网站域名访问存放在Bucket内的数据。
您需要为存储桶绑定已通过备案的自定义域名(请联系天翼云客服评估审核后绑定),然后在域名管理系统中添加CNAME记录,并通过自定义域名进行网站的访问。
将网站的所有文件(html、CSS、js、图片等)上传到开通了静态网站托管功能的Bucket中, 注意要保持文件之间的相对路径,该路径会影响用户使用自定义域名访问时的访问路径。
例如,将Bucket绑定了自定义域名your**domain.com,且配置的静态网站默认首页为index.html,默认错误页为error.html,并且上传了文件 example.html到Bucket下的 test 目录下,当您访问https://your**domain.com/test/example.html时,对应的访问页面为Bucket下的test/example.txt文件。
注意
OOS自有网站托管域名不支持HTTPS访问,用户自定义域名支持HTTPS访问。
如果配置静态网站托管后,当匿名用户直接访问Bucket的域名,会将静态网站文件下载到本地。如果要实现访问静态网站时是预览网站内容,而非下载静态网站文件,静态网站域名须是Bucket绑定的已备案自定义域名,为Bucket绑定自定义域名请联系天翼云客服申请。
尽量避免目标Bucket名中带有“.”,否则通过HTTPS访问时可能出现客户端校验证书出错。
日志
出于分析或审计等目的,用户可以开启日志功能,用于把存储桶的各类访问请求记录成日志,并将生成的日志文件写入用户指定的桶中。
生成的日志文件会保存在指定的存储桶中,占用存储空间,因此会产生存储费用。默认情况下,OOS不会为用户的存储桶收集访问日志。
生命周期
生命周期管理支持通过配置指定的规则,定期将存储桶内的文件(Object)转储为指定存储类型,或者将过期的文件删除,从而节省存储费用。
注意
如果存储桶没有配置过生命周期规则,执行该操作将创建新的生命周期规则。
如果存储桶内的生命周期规则正在执行时被修改配置,则修改后的配置并不立即生效,需等原生命周期规则执行完成后才能生效。
每个存储桶最多创建1000条生命周期规则。
同一存储桶,同一类型(到期删除或者到期转成低频访问存储)的生命周期规则不能存在叠加前缀,例如已创建到期删除文件的生命周期规则的前缀是ABC,则无法再创建前缀为ABCD或AB或A的到期删除文件的生命周期规则。
当用户为存储桶设置了生命周期规则,这些规则将同时应用于已有文件和后续新创建的文件。例如,用户今天增加了一个生命周期,指定过期时间为30天,那么OOS将会将最后修改时间在30天前的文件都加入到待删除队列中。
跨域设置
跨域资源共享(Cross Origin Resource Sharing,CORS)是由W3C标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端Web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(Same Origin Policy,SOP,同协议、同域名或IP、以及同端口视为同源)的存在,不同域之间的网站脚本和内容是无法进行交互的。例如,当来自于A网站的页面中的JavaScript代码希望访问B网站的时候,浏览器会拒绝该访问,因为A、B两个网站是属于不同的域。
OOS支持配置CORS规范,定义了客户端Web应用程序在一个域中与另一个域中的资源进行交互的方式,允许跨域请求访问OOS中的资源。
注意
每个Bucket最多可以配置100条跨域规则。
当OOS收到一个跨域请求(或者OPTIONS请求)时,会读取Bucket对应的CORS规则,然后进行相应的权限检查。OOS会依次检查每一条规则,使用第一条匹配的规则来允许请求并返回对应的Header。如果所有规则都匹配失败,则不附加任何CORS相关的Header。
合规保留
OOS支持WORM(Write Once Read Many)特性,允许用户以“不可删除、不可篡改”方式保存和使用数据。当开启合规保留策略后,您可以在存储桶中上传和读取文件(Object),但是在Object的保留时间到期之前,任何用户都无法删除Object和策略。Object的保留时间到期后,才可以删除Object。
注意
合规保留一旦开启,不能关闭,不能缩短合规保留时长,但可以延长合规保留时长。
合规保留的时间精确到秒,例如对Bucket A设置合规保留时长为10天,文件A1属于Bucket A,A1的最后更新时间为2019-3-1 12:00:00,该文件会在2019-3-11 12:00:01过合规保留期。
任何用户(包括根用户)都不能修改、覆盖、删除处于合规保留期的文件。
处于合规保留期的文件,无法通过调用API、控制台修改文件的存储类型,只能通过设置的生命周期规则修改存储类型。
文件处于合规保留期:如果生命周期规则为修改文件存储类型,则生命周期规则可以生效;如果生命周期规则为到期删除文件,则文件必须过了合规保留期后,生命周期规则才能生效。在客户销户、欠费超期情况下,合规保留未到期数据会被删除而不做保留。
清单配置
通过OOS Bucket清单功能可以获取Bucket中指定文件(Object)的大小、存储类型等信息。相对于GET Bucket (List Objects)接口,Bucket清单可以按每天或者每周以CSV的形式输出指定文件的相关信息,且不会影响Bucket的请求速率。在需要列举海量Object的场景中,推荐使用Bucket清单功能。