华为云用户手册

  • 对保留字符的百分号编码 如果一个保留字符在URI中具有特殊含义(称作“reserved purpose”), 且URI中必须使用该字符用于其它目的,那么该字符必须百分号编码。OBS服务对非ASCII字符编码必须采用UTF-8编码,否则最终上传至OBS的对象名可能与预期不符。例如,保留字符“/”,如果将其用作URI的路径成分的分隔符, 则是具有特殊含义的保留字符(在OBS中用来分割桶名和对象名)。如果该字符需要出现在URI一个路径成分的内部, 则需要使用三个字符“%2F”或“%2f”代替原本的“/”。保留字符 " ",需要将其编码为“%20”,例如字符串“abc d”,应该编码为“abc%20d”。
  • 对象键命名指导原则 虽然您可以在对象键名称中使用任何UTF-8字符,但是按照以下规则命名有助于确保与其他应用程序的最大兼容性。每个应用程序对特殊字符的分析方式可能不同。以下指导原则有助于最大程度符合DNS、Web安全字符、XML分析器和其他API的要求。 以下字符集通常可安全地用于键名称: 字母数字字符(通常也被称为非保留字符) [0-9a-zA-Z] 特殊字符(通常也被称为保留字符) 感叹号(“!”) 连字符(“-”) 下划线(“_”) 句点(“.”) 星号(“*”) 单引号(“'”) 左括号(“(”) 右括号(“)”) 以下是有效对象键名称的示例: 4my-organization my.great_photos-2014/jan/myvacation.jpg videos/2014/birthday/video1.wmv
  • 约束与限制 归档存储或深度归档存储对象需恢复后才能分享。 临时分享文件不需要授权码。临时分享文件夹中的提取码分享方式需要授权码,详情请参见分享文件夹。 仅桶版本号为3.0的桶支持临时文件分享功能。查询桶版本号方法请参见OBS 2.0和OBS 3.0的判断方法。 临时分享文件的URL有效期如下: 支持的使用方式 有效期 控制台 取值范围为1分钟到18小时。 当对对象执行“分享”之后,OBS就会以默认5分钟的有效期获取临时鉴权信息,并生成分享链接,此时链接就已经生效并且开始计算时间了。每调整一次URL有效期,OBS就会重新获取一次鉴权信息以生成新的分享链接,新链接的有效期从调整的时候开始计算。 SDK 通过参数“Expires”设置临时授权失效的时间,临时授权失效的时间为24小时。 API 通过参数“Expires”设置临时授权失效的时间,临时授权失效的时间为24小时。 OBS Browser+ 使用账号密码登录时,分享的有效期最长只有24小时,默认10小时。 如果需要更长的有效期,请使用永久AK/SK方式登录。 obsutil 通过附加参数“e”设置生成的对象下载链接的过期时间(单位:秒),最小值为60秒,默认为300秒,设置的过期时间没有上限。
  • 使用场景 实际业务场景下,您可能会需要将文件临时分享给其他人或者将文件永久共享给其他人。 临时分享: 通过文件的临时URL直接将其分享给其他用户。文件分享强调临时性,所有分享的URL都是临时URL,存在有效期。 临时URL是由文件的访问域名和临时鉴权信息组成。示例如下: https://bucketname.obs.cn-north-4.myhuaweicloud.com:443/image.png?AccessKeyId=xxx&Expires=xxx&x-obs-security-token=xxx&Signature=xxx 临时鉴权信息主要包含AccessKeyId、Expires、x-obs-security-token和Signature四个参数。其中AccessKeyId、x-obs-security-token和Signature用于鉴权,Expires定义鉴权的有效期。 临时鉴权的方法及各参数的详细解释,请参见《 对象存储服务 API参考》的URL中携带签名章节。 永久共享: 通过将对象权限设置为匿名用户读取权限,通过分享对象URL,匿名用户通过分享的链接地址可访问对象数据。设置权限请参见对匿名用户授予指定对象的公共读权限。 对象类型不同,通过浏览器访问该对象的方式不同。例如:.txt、.html等文件可直接通过浏览器打开浏览,而.exe、.dat等文件则会在浏览器打开时,自动下载到本地。 获取对象访问URL请参见如何获取对象访问路径? 操作失败请参见通过URL访问对象失败进行处理。
  • 桶概述 桶(Bucket)是OBS中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。 每个桶都有自己的存储类别、访问权限、所属区域等属性,用户可以在不同区域创建不同存储类别和访问权限的桶,并配置更多高级属性来满足不同场景的存储诉求。 对象存储服务设置有四类桶存储类别,分别为:标准存储、低频访问存储、归档存储、深度归档存储(受限公测),从而满足客户业务对存储性能、成本的不同诉求。创建桶时可以指定桶的存储类别,桶的存储类别可以修改。 在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他用户创建的桶名称相同。桶所属的区域在创建后也不能修改。每个桶在创建时都会生成默认的桶ACL(Access Control List),桶ACL列表的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。 一个账号及账号下的所有 IAM 用户一共可创建100个桶。建议结合OBS细粒度权限控制能力,合理进行桶规划和使用。例如,建议在桶内根据对象前缀划分不同的目录,通过细粒度权限控制实现不同目录在不同业务部门之间的权限隔离。每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。 由于OBS是基于REST风格HTTP和HTTPS协议的服务,您可以通过URL(Uniform Resource Locator)来定位资源。 OBS中桶和对象的关系如图1所示: 图1 桶和对象 您可以根据使用习惯、业务场景通过不同的使用方式来创建桶。桶创建成功后,您可以通过多种使用方式将文件(数据)上传至桶,OBS最终将这些文件以对象的形式存储在桶中。OBS中桶和对象按区域划分,无论您通过哪种方式使用OBS,都可以通过其他方式在同一区域访问相同的桶及桶内资源。 父主题: 桶管理
  • 使用场景 默认情况下,OBS的资源(桶和对象)都是私有的,只有资源拥有者可以访问OBS资源,其他用户在未经授权的情况下均无OBS访问权限。OBS的权限控制是指通过编写访问策略向其他账号或者IAM用户授予资源的控制权限。例如,你拥有一个桶,你可以授权一个其他的IAM用户上传对象到你的桶中;你也可以将桶开放给非公有云用户访问,即桶作为一个公共资源,能被互联网上任何人访问。OBS提供多种方式将OBS资源权限授予给他人,资源拥有者可以根据业务需求制定不同的权限控制方案,从而确保数据安全。 OBS权限管理方式的详细介绍,请参见权限配置指南。
  • 使用方式 您可以通过以下方式对OBS资源进行管理。 工具 描述 使用方式 参考文档 管理控制台 管理控制台是网页形式的。通过管理控制台,您可以使用直观的界面进行相应的操作。 使用网页访问云服务控制台,通过账号名&密码或IAM的账号名&用户名&密码登录认证身份,即可访问OBS的全部资源。 详情请参见登录OBS管理控制台。 控制台指南 SDK SDK是对OBS服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SDK提供的接口函数即可实现使用OBS业务能力的目的。 环境准备时配置终端节点,并在初始化阶段设置访问密钥(AK/SK)。 详情请参见SDK参考。 SDK参考 API OBS提供了REST(Representational State Transfer)风格API,支持您通过HTTP/HTTPS请求调用,实现创建、修改、删除桶,上传、下载、删除对象等操作。 环境准备时配置终端节点,计算签名时添加访问密钥(AK/SK)到请求中。若您使用REST API自行开发程序,则需按照OBS定义的签名算法来计算签名并添加到请求中。 详情请参见用户签名验证。 API参考 OBS Browser+ OBS Browser+是一款运行在Windows系统上的对象存储服务管理工具,OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理。 下载OBS Browser+工具,通过访问密钥(AK/SK)进行身份鉴权。OBS Browser+支持直接访问OBS,也支持通过配置服务器地址方式访问。 OBS Browser+的AK、SK和终端节点的配置详情请参见在哪里可以获取AK和SK。 OBS Browser+工具指南 obsutil obsutil是一款用于访问管理OBS的命令行工具,您可以使用该工具对OBS进行常用的配置管理操作。对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务的最佳选择。 下载obsutil工具,配置服务器地址,通过访问密钥(AK/SK)进行身份鉴权。 obsutil的AK、SK和终端节点的配置详情请参见初始化配置。 obsutil工具指南 obsfs obsfs是OBS提供的一款基于FUSE的文件系统工具,主要用于将并行文件系统挂载至Linux系统,让用户能够在本地像操作文件系统一样直接使用OBS海量的存储空间。 下载obsfs工具,通过访问密钥(AK/SK)进行身份鉴权。 obsfs的AK、SK的配置详情请参见初始化配置。 obsfs工具指南 父主题: 使用前须知
  • 注意事项 开启了桶级WORM开关,系统将自动开启多版本,并且不允许暂停多版本。WORM保护是基于对象版本号的,配置WORM的版本受到WORM保护,没有配置WORM的版本可正常删除。例如,test.txt 001受到WORM保护。此时再次上传同名文件,产生新的对象版本test.txt 002,test.txt 002并未配置WORM,那么test.txt 002就不受保护可以正常删除。当您下载对象时,不指定版本号下载的是最新对象,也就是test.txt 002。 处于保护中的对象不会被生命周期删除,但是能正常进行存储类别转换。受保护的对象不再受保护后,如果满足生命周期过期规则,将会被系统删除。 桶级WORM开关一旦打开,则无法为该桶禁用桶级WORM开关 ,也无法暂停桶的版本控制,但可以禁用桶级默认WORM策略。 开启桶级WORM开关的桶暂不支持跨区域复制能力。 在客户销户、欠费超期情况下,WORM未到期数据会被删除而不做保留。 不支持迁移场景。 WORM不阻止修改对象元数据。
  • 使用场景 OBS提供合规模式的WORM功能,合规模式是指如果您给一个对象应用了WORM,那么任何用户在指定时间内都不能覆盖或删除受保护的对象版本,包括账号中的根用户。 根据作用目标的范围不同,WORM可以分为桶级WORM和对象级WORM。桶级WORM以桶为单位锁定,保护范围覆盖桶中的所有对象。对象级WORM以对象为单位锁定,保护范围仅覆盖与WORM策略绑定的对象。无论是对象级WORM策略还是桶级WORM策略,都要在开启桶级WORM开关后,才能生效,否则不会保护桶内对象。WORM策略只对策略生效之后新上传的对象生效。当对象同时被桶级WORM和对象级WORM覆盖时,优先遵从对象级WORM的保护策略。
  • 使用场景 当启用服务端加密功能后,用户上传对象时,数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。 OBS支持以下三种方式的服务端加密,三种方式都采用了行业标准的AES256加密算法,另外SSE-KMS还可以选择采用国家密码局认定的SM4加密算法。 KMS托管密钥的服务端加密(SSE-KMS) 用户首先需要在KMS中创建密钥(或者使用KMS提供的默认密钥),当用户在OBS中上传对象时使用该密钥进行服务端加密。 在使用SSE-KMS方式加密时,您可以在创建桶时开启默认加密,开启后,所有上传到桶中的对象都会被加密;也可以在已创建的桶中根据需要开启默认加密,开启后,新上传到桶中的对象会被加密。 OBS仅会对开启桶默认加密之后上传的对象进行加密,不会改变开启前已经有对象的加密状态。关闭默认加密,也不会影响桶中已有对象的加密状态,关闭默认加密后可在上传对象时进行单独加密。 您可以通过控制台、API、SDK、OBS Browser+方式配置SSE-KMS加密。 客户提供加密密钥的服务端加密(SSE-C) OBS使用用户提供的密钥和密钥的MD5值进行服务端加密。 您可以通过API、SDK方式配置SSE-C加密。 OBS根密钥派生密钥的服务端加密(SSE-OBS) OBS使用OBS根密钥派生的密钥对用户数据进行服务端加密。 您可以通过控制台配置SSE-OBS加密。
  • 约束与限制 一个对象每次上传,只支持一种服务器端加密方式。 当桶或者桶内对象开启了SSE-KMS服务端加密功能,需要使用IAM为请求者配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto、kms:dek:crypto权限,才能上传下载对象。 创建桶时,SSE-KMS服务端加密方式支持拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、非洲-约翰内斯堡、华北-北京四、华北-乌兰察布一、华东-上海一、华南-广州、西南-贵阳一、亚太-曼谷、亚太-新加坡、亚太-雅加达、土耳其-伊斯坦布尔区域。如果您在使用SSE-KMS时选择SM4加密算法,该算法仅支持华北-乌兰察布一区域。 上传对象时,SSE-KMS服务端加密方式支持拉美-墨西哥城一、拉美-圣保罗一、非洲-约翰内斯堡、华北-北京四、华北-乌兰察布一、华东-上海一、华南-广州、华南-广州-友好用户环境、西南-贵阳一、中国-香港、亚太-曼谷、亚太-新加坡、亚太-雅加达、土耳其-伊斯坦布尔区域。如果您在使用SSE-KMS时选择SM4加密算法,该算法仅支持华北-乌兰察布一区域。 SSE-OBS服务端加密方式中国站已全网上线。
  • 约束与限制 仅部分区域支持文件夹分享功能,具体支持区域请参见功能总览。 归档存储或深度归档存储对象需恢复后才能分享。 仅桶版本号为3.0的桶支持文件夹临时分享功能。查询桶版本号方法请参见OBS 2.0和OBS 3.0的判断方法。 临时分享文件夹的URL有效期如下: 支持的使用方式 有效期 控制台 取值范围为1分钟到18小时。 当对对象执行“分享”之后,OBS就会以默认5分钟的有效期获取临时鉴权信息,并生成分享链接,此时链接就已经生效并且开始计算时间了。每调整一次URL有效期,OBS就会重新获取一次鉴权信息以生成新的分享链接,新链接的有效期从调整的时候开始计算。 API 通过参数“Expires”设置临时授权失效的时间,临时授权失效的时间为24小时。 OBS Browser+ 使用账号密码登录时,分享的有效期最长只有24小时,默认10小时。 如果需要更长的有效期,请使用永久AK/SK方式登录。 obsutil 通过附加参数“vp”设置生成授权码的有效期,默认值为1天。该参数支持多种时间单位的配置方式,包括:m(月)、w(周)、d(天)、h(小时)、min(分钟)、s(秒)。如果不带时间单位,则该参数为授权码有效的秒数。
  • 使用场景 实际业务场景下,您可能会需要将整个文件夹临时分享给其他人或者将文件夹永久共享给其他人。 临时分享: 通过文件夹的临时URL直接将其分享给其他用户。文件夹分享强调临时性,所有分享的URL都是临时URL,存在有效期。 临时分享分为两种方式:提取码分享、直接分享。 提取码分享 分享者需要先设置一个6位数的提取码,再创建分享。创建成功后,OBS会自动将文件夹中的所有对象的下载链接汇总到一个静态网站中,并托管到一个公共的OBS桶。所有用户均可使用创建分享时生成的临时URL和提取码,访问这个静态网站,并进行文件下载。 临时URL是由文件夹的访问域名和临时鉴权信息组成。示例如下: https://e-share.obs-website.cn-north-4.myhuaweicloud.com:443/image.png?token=xxx 临时鉴权的方法及各参数的详细解释,请参见《对象存储服务API参考》的URL中携带签名章节。 直接分享 分享者输入有效期后直接分享链接给用户。用户通过一个签名即可访问文件夹下所有的对象。 访问文件夹内对象的临时URL是由桶域名(前缀)+对象路径+签名信息(后缀)组成。 永久共享: 通过将对象权限设置为匿名用户读取权限,通过分享对象URL,匿名用户通过分享的链接地址可访问对象数据。设置权限请参见对匿名用户授予指定对象的公共读权限。 获取对象访问URL请参见如何获取对象访问路径? 操作失败请参见通过URL访问对象失败进行处理。
  • 约束与限制 桶创建成功后,不能修改名称和所属区域。创建时,请设置合适的桶名和区域。 一个账号及账号下的所有IAM用户一共可创建100个桶。建议结合OBS细粒度权限控制能力,合理进行桶规划和使用。例如,建议在桶内根据对象前缀划分不同的目录,通过细粒度权限控制实现不同目录在不同业务部门之间的权限隔离。每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。 考虑到桶名会作为访问域名的一部分,需要参与域名解析,因此桶名需要满足DNS域名规范。OBS系统在接受创桶请求时,会对桶名进行严格的检查,具体规则如下: 需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。用户删除桶后,立即创建同名桶或并行文件系统会创建失败,需要等待30分钟才能创建。 长度范围为3到63个字符,支持小写字母、数字、中划线(-)、英文句号(.)。 禁止两个英文句号(.)相邻,禁止英文句号(.)和中划线(-)相邻,禁止以英文句号(.)和中划线(-)开头或结尾。 禁止使用IP地址。 当使用HTTPS协议访问OBS系统时,由于SSL的通配符证书仅匹配不包含"."的桶。这将导致桶名包含"."的桶在访问OBS系统时,客户端会提示证书校验存在风险,比如浏览器安全提示会呈现红色告警。因此如非必要,请尽量不要在桶名中包含"."。
  • 约束与限制 桶版本限制: 仅桶版本号为3.0及以上的桶支持镜像回源。 时间限制: 修改镜像回源规则,需要5分钟之后才能生效。 区域限制: 数据回源支持的区域请参见功能总览。 规则数量限制: 最多创建10条镜像回源规则。 功能限制: 不支持匿名用户配置镜像回源规则。 不支持给并行文件系统配置镜像回源规则。 不支持OBS静态网站,即通过OBS静态网站域名下载对象出现404,不会触发镜像回源规则。 不支持在镜像回源规则中指定当前OBS桶域名,即源桶与目标桶不能是同一个桶。 私有桶的镜像回源当前仅支持部分云厂商。 不支持源站使用Transfer-Encoding: chunked方式传输数据,即从源站下载对象的响应中必须包含Content-Length头域来指明源对象大小。 权限限制: 需要使用IAM增加Tenant Administrator权限后才能设置、获取和删除镜像回源规则。 镜像回源需使用IAM创建云服务委托,委托OBS获取源站数据。委托需要给OBS服务授予obs:object:HeadObject、obs:object:PutObject权限。 如果桶开启了SSE-KMS服务端加密功能,对OBS的云服务委托中还需要使用IAM配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto、kms:dek:crypto权限。
  • manifest文件 当桶内对象很多的时候,单条清单配置可能会生成多个清单文件,生成清单文件需要一定时间。例如,桶内有20万个对象时,生成所有清单文件需要约1.5分钟。在全部清单文件生成完成之后1到2小时会生成一个manifest.json文件,manifest.json文件中包含了该条清单本次生成的所有清单文件的相关信息,具体信息如下: sourceBucket:源桶的桶名 destinationBucket:目标桶的桶名 version:清单的版本 fileFormat:清单文件的格式 fileSchema:清单文件中包含的对象元数据字段 files:所有清单文件列表 key:清单文件名称 size:清单文件的大小(以字节为单位) inventoriedRecord:文件中包含的清单记录条数 下面是一个简单的manifest.json文件示例。 { "sourceBucket":"user001", "destinationBucket":"bucket001", "version":"2019-01-03", "fileFormat":" CS V", "fileSchema":"Bucket,Key,Size,LastModifiedDate,ETag,StorageClass,IsMultipartUploaded,ReplicationStatus,EncryptionStatus", "files":[ { "key":"inventory/user001/test_id/2019-01-03T12-28Z/files/0000016813AF58E66806C1E2D7F15155_1.csv", "size":6705647390, "inventoriedRecord":70585762, } ] } 生成的manifest文件对象的对象名如下,各个字段的含义见生成的清单文件对象的名称: destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/manifest.json
  • 如何配置桶清单 在介绍如何配置桶清单之前,先简要介绍一下清单的源桶和目标桶: 源桶:源桶为配置清单的桶,生成的清单文件中包含的为源桶中的对象。 目标桶:生成的清单文件存放到目标桶中,目标桶和源桶可以是同一个桶,如果要在目标桶中对生成的清单文件进行分类,可以在清单配置中指定目标前缀,生成的清单文件则会存放到以该前缀开头的目录下面,如果不指定前缀,则所有清单文件会默认存放到BucketInventory的目录下面。 目标存储桶的限制 和源桶属于同一个账号。 和源桶在同一区域中。 必须配置相应的桶策略,向OBS系统用户授予写入对象的权限,有关授权的更多信息,请参见为目标桶添加桶策略。 目标存储桶包括的文件 清单文件列表。 Manifest文件,Manifest文件中包含某条清单配置的所有清单文件列表,有关Manifest文件更多信息,请参见manifest文件。 配置桶清单 您可以通过OBS控制台配置桶清单,也可以通过REST API进行配置。如果通过控制台进行配置,控制台会自动生成目标桶的桶策略;如果通过REST API进行配置,需要手动为目标桶配置桶策略。 为目标桶添加桶策略。 通过在目标桶上添加桶策略,向OBS系统用户授予将清单文件写入到目标桶的权限,桶策略的格式如下,修改其中的destbucket为目标桶的桶名。 { "Statement": [ { "Effect": "Allow", "Sid": "1", "Principal": {"Service": "obs"}, "Resource": ["destbucket/*"], "Action": ["PutObject"] } ] } 配置桶清单。 您可以使用多种方式配置桶清单,详情请参见使用方式。
  • 约束与限制 桶版本限制: 只有OBS 3.0的桶支持配置清单,目标桶无OBS版本限制。 清单数量限制: 一个桶最多支持10条桶清单。 源桶和目标桶限制: 桶清单配置的源桶和目标桶必须归属同一个账号。 桶清单配置的源桶和目标桶必须归属同一个区域。 桶清单中配置的目标桶不能开启桶默认加密。 功能限制: 只支持生成CSV格式的清单文件。 桶清单筛选条件目前仅支持设置为所有对象或指定前缀的对象。 同一个桶中多条清单规则的筛选条件不能彼此包含: 如果已经存在针对桶中所有对象的规则,则无法再创建按对象名前缀筛选的规则。如需创建,要先删除针对所有对象的规则。 如果已经存在按对象名前缀筛选的规则,则无法再创建针对桶中所有对象的规则。如需创建,要先删除所有按对象名前缀筛选的规则。 如果已经存在某个按对象名前缀筛选的规则(如前缀ab),则无法再创建与其存在包含或被包含关系的规则(如前缀a或前缀abc)。如需创建,要先删除存在包含或被包含关系的规则。 桶清单加密方式目前只支持SSE-KMS。 权限限制: 清单文件使用OBS系统用户上传到目标桶,目标桶必须给OBS系统用户写权限。
  • 清单文件中包含的内容 清单文件中的内容由设置的清单配置而定,所有可能的字段见表1。 表1 清单中列出的对象元数据 元数据 说明 Bucket 源桶的桶名。 Key 键值,即对象的名称,一个桶里的每个对象拥有唯一的对象键值。(清单文件中的对象名采用UTF-8的URL编码,需解码后才能使用)。 VersionId 对象的版本id(如果清单配置中的IncludedObjectVersions值为Current时,则不包含此字段)。 IsLatest 如果对象的版本为最新,则设置为True(如果清单配置中的IncludedObjectVersions值为Current时,则不包含此字段)。 IsDeleteMarker 在桶开启多版本时,如果删除一个对象,会生成一条新的对象元数据,并将该条元数据的IsDeleteMarker标记为true(如果清单配置中的IncludedObjectVersions值为Current时,则不包含此字段)。 Size 对象大小(以字节为单位)。 LastModifiedDate 对象创建日期或上次修改日期。 ETag 对象MD5的16进制摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。 StorageClass 对象的存储类别。 IsMultipartUploaded 对象是否是多段上传对象。 ReplicationStatus 对象的跨区域复制状态。 EncryptionStatus 对象的加密状态。
  • 暂停多版本控制 多版本控制一旦启动,不可以关闭,只能暂停使用。暂停后,新上传的对象版本号为空。若之前有空版本号的同名对象,则会覆盖该带空版本号的对象。 图5 暂停多版本控制后的对象版本示意图 当不需要对桶内对象进行版本控制时,可以暂停多版本控制: 历史版本将继续保留在OBS中,若这些历史版本你不再需要,请手动删除。 仍可以指定版本号下载对象,不指定版本号默认下载最新的对象。 除带删除标记的版本外,其他历史版本的对象存储在OBS中仍需要进行计费。
  • 开启多版本控制 桶中已有对象版本ID(空)和内容都不会变化。再次上传该同名对象,对象版本示意图如图1所示。 图1 多版本对象示意图(已有对象) 新上传对象,OBS自动为每个对象创建唯一的版本号。上传同名的对象将以不同的版本号同时保存在OBS中,如图2所示。 图2 多版本对象示意图(新对象) 表1 版本说明 版本 描述 最新版本 多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。 历史版本 多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。除最后一次外的,其他保存的版本号为历史版本。 列出桶内对象列表时默认列出最新对象列表。 可以指定版本号下载对象,不指定版本号默认下载最新的对象。 可以选中目标对象,并单击右侧的“删除”删除对象。对象被删除后,OBS将插入一个删除标记,对象在“已删除对象”列表中呈现。此时若访问该对象,会返回404错误。 图3 删除标记示意图 删除带删除标记的版本可恢复该对象。 在“已删除对象”列表,选中对象,可指定版本号彻底删除指定版本对象。 一个对象只会显示在对象列表或已删除对象列表中,不会同时出现。 例如,上传一个对象A后,将其删除,对象A将显示在已删除对象列表中。若再次上传同名对象A,同名对象A会显示在对象列表中,显示在已删除对象列表中的原对象A将不会存在。对象A版本示意图如图4所示。 图4 删除后再上传同名对象的版本示意图 除带删除标记的版本外,其他每个版本的对象存储在OBS中均需要进行计费。
  • 使用场景 跨区域复制能够为用户提供跨区域数据容灾的能力,满足用户数据复制到异地进行备份的需求。 跨区域复制是指通过创建跨区域复制规则,将一个桶(源桶)中的数据自动、异步地复制到不同区域的另外一个桶(目标桶)中,源桶和目标桶必须属于同一个账号,暂不支持跨账号复制。 在配置跨区域复制规则时,您可以按前缀匹配请求复制部分对象,也可以请求复制桶中的所有对象。复制到目标桶的对象是源桶中对象的精确副本。它们具有相同的对象名称和元数据,包括:对象内容、大小、最后修改时间、创建者、版本号、用户定义的元数据以及ACL。默认情况下复制对象的存储类别,与源对象保持一致。您也可以为复制对象指定一个存储类别。 图1 跨区域复制示意图
  • 复制的内容 启用跨区域复制规则后,符合以下条件的对象会复制到目标桶中: 新上传的对象(归档存储或深度归档存储对象除外)。 有更新的对象,比如对象内容有更新或者已复制成功的对象ACL有更新。 桶中的历史对象(需要开启“同步历史对象”功能,且归档存储或深度归档存储对象除外)。 例如,7月28号,源桶开启了跨区域复制,上传了对象A和B,此时目标桶同步复制了A和B。7月29号,源桶上传了对象C,这个时候目标桶只会复制C,不会再次复制A和B。7月30号,源桶修改了对象A,目标桶只会复制A,不会再次复制B和C。 跨区域复制不支持SSE-C加密的对象复制。
  • 约束与限制 归档存储或深度归档存储的对象正在恢复的过程中,不允许暂停或删除恢复任务。 对象的恢复状态为恢复中时,对象不能再次恢复。 数据恢复后,会产生一个标准存储类型的对象副本,即对象同时存在标准存储类型的对象副本和归档存储或深度归档存储类型的对象。归档存储或深度归档存储对象恢复完成时,对象的恢复状态显示“已恢复”,生成的标准存储类型的对象副本不会在桶中展示。 在恢复的有效期内,会同时收取这份数据在标准存储和归档存储或深度归档存储中的存储费用。恢复有效期到期后标准存储类型的对象副本会自动删除。
  • 使用场景 对于存储类别为归档存储或深度归档存储的对象,用户需要先恢复才能下载、通过对象URL访问对象、配置对象的ACL权限、设置对象元数据。 OBS提供加急和标准两种不同的恢复方式,加急恢复归档存储恢复耗时1~5 min,加急恢复深度归档(受限公测)存储恢复约耗时3~5 h;标准恢复对象归档存储恢复耗时3~5 h,标准恢复深度归档(受限公测)存储恢复约耗时5~12 h。 对于深度归档对象,大批量恢复建议使用标准恢复,且对象最终恢复时间受对象大小以及取回数据量的影响。 数据恢复时间和收费详情请参见产品价格详情。
  • 桶存储类别转换 桶存储类别仅支持手动修改。 桶存储类别转换规则如图1所示。标准存储和低频访问存储支持单AZ存储和多AZ存储两种数据冗余存储策略,归档存储和深度归档存储仅支持单AZ存储。当一个桶的数据冗余存储策略为单AZ存储时,仅支持变更为单AZ存储的存储类别。多AZ存储同理。 图1 桶存储类别转换规则 手动修改桶存储类别操作步骤: 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表中,选择待修改存储类别的桶,并单击右侧操作栏的“修改存储类别”。 选择存储类别,单击“确定”。 图2 手动修改桶存储类别 注意事项: 修改桶的存储类别,不会影响桶中已有对象的存储类别,后续上传的对象默认与桶的存储类别相同。如果想批量修改桶中对象的存储类别,建议通过生命周期规则配置。 例:桶bucket1为标准存储,桶中有一个标准存储的对象object1。当桶bucket1转换为低频访问存储类别,object1依然为标准存储类别,新上传的object2则为低频访问存储类别。 桶的存储类别由归档存储或深度归档存储转换为标准存储或低频访问存储,不会自动恢复桶中存储类别为归档存储或深度归档存储的对象。 归档和深度归档存储不支持多AZ。因此不支持使用生命周期的存储类别转换功能,将多AZ桶的存储类别转化为归档或深度归档存储。
  • 使用方式 OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式设置桶和对象的存储类别。 支持的使用方式 参考文档 控制台 创建桶时指定桶存储类别 上传文件时指定对象存储类别 SDK OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。 API 设置桶默认存储类别 创建桶时指定桶存储类别(添加x-obs-storage-class头域设置) PUT上传时指定对象存储类别(添加x-obs-storage-class头域设置) POST上传时指定对象存储类别(添加x-obs-storage-class头域设置) OBS Browser+ - obsutil 创建桶时指定桶存储类别 设置桶属性指定桶存储类别 上传对象时指定对象存储类别 设置对象属性指定对象存储类别
  • 桶存储类别和对象存储类别 创建桶时支持设置桶存储类别,也可在桶创建完成后修改桶存储类别。 上传对象时,对象的存储类别默认继承桶的存储类别,您也可以重新指定对象的存储类别,同时也支持在对象上传完成后修改对象的存储类别。 修改桶的存储类别,桶内已有对象的存储类别不会修改,新上传对象时的默认对象存储类别随之修改。 归档存储的对象,恢复状态默认为未恢复,此状态下无法直接下载。您可以开启归档数据直读功能,方可直接下载归档存储的对象,无需提前恢复。归档数据直读会收取相应的费用,请根据实际业务合理规划。
  • 使用场景 OBS支持4种存储类别:标准存储、低频访问存储、归档存储、深度归档存储(受限公测),从而满足客户业务对存储性能、成本的不同诉求。不同规格的存储类别计费参见存储费用。 不同的存储类别可以满足客户业务对存储性能、成本的不同诉求。 标准存储访问时延低和吞吐量高,因而适用于有大量热点文件(平均一个月多次)或小文件(小于1MB),且需要频繁访问数据的业务场景,例如:大数据、移动应用、热点视频、社交图片等场景。 低频访问存储适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景,例如:文件同步/共享、企业备份等场景。 归档存储适用于很少访问(平均一年访问一次)数据的业务场景,例如:数据归档、长期备份等场景。归档存储安全、持久且成本极低,可以用来替代磁带库。为了保持成本低廉,数据恢复时间可能长达数分钟到数小时不等。 深度归档存储(受限公测)适用于长期不访问(平均几年访问一次)数据的业务场景,其成本相比归档存储更低,但相应的数据恢复时间将更长,一般为数小时。
  • 存储类别对比 对比项目 标准存储 低频访问存储 归档存储 深度归档存储(受限公测) 特点 高性能、高可靠、高可用的对象存储服务 高可靠、较低成本的实时访问存储服务 归档数据的长期存储,存储单价更优惠 深度归档数据的长期存储,存储单价相比归档存储更优惠 应用场景 云应用、数据分享、内容分享、热点对象 网盘应用、企业备份、活跃归档、监控数据 档案数据、医疗影像、视频素材、带库替代 长期不访问的数据存档场景 设计持久性 99.999999999% 99.999999999% 99.999999999% 99.999999999% 设计持久性(多AZ) 99.9999999999% 99.9999999999% 不支持多AZ 不支持多AZ 设计可用性 99.99% 99% 99% 99% 设计可用性(多AZ) 99.995% 99.5% 不支持多AZ 不支持多AZ 最小计量单位a 64KB 64KB 64KB 64KB 最低存储时间b 无 30天 90天 180天 数据恢复 不涉及 按实际恢复数据量收费,单位GB 分加急和标准两种恢复方式,不同恢复方式消耗时间不同,请参见恢复归档存储或深度归档存储对象。 按实际恢复数据量收费,单位GB 分加急和标准两种恢复方式,不同恢复方式消耗时间不同,请参见恢复归档存储或深度归档存储对象。 按实际恢复数据量收费,单位GB 图片处理 支持 支持 不支持 不支持 a:最小计量单位是指对象的计费大小下限。对象大小小于最小计量单位时,将按照最小计量单位进行计费。例如上传一个32KB的标准存储对象,会按照64KB进行计费。 b:最低存储时间是指对象的计费时间下限。对象存储时间小于最低存储时间时,将按照最低存储时间计费。例如,一个低频访问存储对象在OBS中存储了20天后删除,会按照30天计费。
共100000条