华为云用户手册

  • Action / NotAction 桶策略动作与资源相关,当资源为当前整个桶时,桶策略动作需配置为桶相关的动作;当资源为桶内对象时,桶策略动作需配置为对象相关的动作。 桶策略动作可以通过排除策略来指定: (可选项)排除以上授权操作:桶策略对除指定动作外的其他动作生效。 不勾选:表示桶策略对指定的动作生效。 勾选:表示桶策略对除指定动作外的其他动作生效。 对于桶策略模板,“桶读写”模板默认勾选,其他模板默认不勾选。桶策略模板中的动作排除策略不支持修改。
  • Condition 除了指定效力、被授权用户、资源、动作外,桶策略还可以指定生效条件。只有当条件设置的表达式与访问请求中的值匹配时,桶策略才生效。条件是可选参数,用户可以根据业务需要选择是否使用。 例如,账号A拥有example桶,账号B会向账号A的example桶中上传对象,账号A想要拥有账号B向example桶中上传对象的完全控制权限(因为默认情况下对象由上传该对象的账号B拥有),则可以指定上传请求中必须包含x-obs-acl键,以及显式授予完全控制权限,完整的条件表达式如下: 条件运算符 键 值 StringEquals x-obs-acl bucket-owner-full-control 条件由条件运算符、条件键、条件值三部分组成,最终组成一个条件表达式,决定桶策略生效的条件。同一个条件运算符中,如果存在多个相同的键,则只会保留最后一个键。条件运算符、键两者之间存在互相限制的关联关系,例如:条件运算符选择了一个String类型的,比如StringEquals,键就只能选择String类型的,比如UserAgent。键选择了一个Date类型,比如CurrentTime,条件运算符就只能选择Date类型的,比如DateEquals。 条件运算符 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,策略才能生效。Statement中可选的条件运算符参见表4,String型运算符如未增加说明,不区分大小写。
  • 配置须知 按照本案例配置后,可以正常通过API或SDK完成桶删除操作,但如果通过控制台或OBS Browser+登录桶列表,会出现无权限的相关提示信息。 报错原因:控制台或OBS Browser+登录后,加载桶列表会调用获取桶列表(ListAllMyBuckets)等接口,删除桶时会先调用列举多版本对象(ListBucketVersions)接口。而授予的权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。 如果希望IAM用户能在控制台或OBS Browser+顺利完成桶删除操作,桶策略中要额外配置ListBucketVersions权限,同时请按照后续操作继续配置IAM自定义策略授予ListAllMyBuckets权限。
  • 文件夹分享方法 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表单击目标桶的桶名称,进入“对象”页面。 选中待分享的文件夹,并单击右侧的“分享”,系统弹出“分享文件夹”对话框。 分享文件夹有两种方式,分别是提取码分享和直接分享。 方法一:提取码分享。 图2 提取码分享 分享策略选择“提取码分享”。 设置相关参数。 表1 提取码分享文件夹参数 参数 说明 URL有效期 单位为分钟或小时,URL有效期的取值范围为1分钟到18小时,默认值为5分钟。 在“URL有效期”内,任何用户都可以访问该文件夹。 提取码 六位数字。 用户在访问分享链接时,需要输入提取码,才能看到文件夹中的对象。 单击“创建分享”,生成文件分享URL。 将链接及提取码发送给所有用户,用户通过访问链接并输入提取码以访问文件夹中的对象。 验证: 其他用户通过网页访问分享的文件夹。 打开网页,输入分享的URL地址,打开链接。 在页面提示框输入“提取码”,确认即可访问分享的文件夹。 其他用户通过OBS Browser+访问分享的文件夹。 打开OBS Browser+。 在登录页面选择“授权码登录”。 输入“授权码”和“提取码”。 单击“登录”,即可访问分享的文件夹。 方法二:直接分享。 图3 直接分享 分享策略选择“直接分享”。 设置相关参数。 表2 直接分享文件夹参数 参数 说明 URL有效期 单位为分钟或小时,URL有效期的取值范围为1分钟到18小时,默认值为5分钟。 在“URL有效期”内,任何用户都可以访问该文件夹。 单击“复制链接”发送给用户,用户通过该链接即可访问文件夹下所有对象。该分享链接由桶域名(前缀)+签名信息(后缀)构成,对该文件夹下所有对象生效。用户可以在分享链接的前缀后面插入对象路径来访问文件夹中的对象,支持访问下载,如图4所示。 验证:其他用户通过分享链接访问文件夹下所有对象。 打开网页,输入分享的链接(前缀+后缀)。 单击“Enter”键打开链接,列举出文件夹内所有对象。 复制对象路径,然后在前缀后黏贴。 单击“Enter”键打开链接,即可访问下载文件夹中的指定对象。 图4 访问直接分享链接示例图
  • 文件分享方法 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表单击目标桶的桶名称,进入“对象”页面。 选中待分享的文件,并单击右侧操作列的“分享”,系统弹出如图1所示对话框。 此时,链接信息中的链接就已经生效并开始计时,有效期为默认的5分钟。修改URL有效期,链接会相应变化,新链接的有效期从修改时开始计算。 图1 分享文件 URL相关操作。 单击“打开URL”,将在新页面打开文件进行预览或者直接下载文件到本地。 单击“复制链接”,您可以将该链接分享给所有用户,用户可以在浏览器中通过此链接直接访问文件。 单击“复制路径”,您可将该路径分享给所有拥有对象所在桶权限的用户,用户可以在对应桶中的文件搜索框中输入该路径搜索并访问文件。 在“URL有效期”内,任何用户都可以访问该文件。
  • OBS权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略和角色,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 OBS部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问OBS时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对OBS服务,管理员能够控制IAM用户仅能对某一个桶资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,OBS支持的API授权项请参见权限和授权项说明。 由于缓存的存在,对用户、用户组以及企业项目授予OBS相关的角色和策略后,大概需要等待10~15分钟权限才能生效。 表1为OBS的所有系统权限。 表1 OBS系统权限 系统角色/策略名称 描述 类别 依赖关系 Tenant Administrator 拥有该权限的用户拥有除IAM外,其他所有服务的所有执行权限。 系统角色 无 Tenant Guest 拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。 系统角色 无 OBS Administrator 拥有该权限的用户为OBS管理员,可以对账号下的所有OBS资源执行任意操作。 系统策略 无 OBS Buckets Viewer 拥有该权限的用户可以执行列举桶、获取桶基本信息、获取桶元数据的操作。 系统角色 无 OBS ReadOnlyAccess 拥有该权限的用户可以执行列举桶、获取桶基本信息、获取桶元数据、列举对象(不包含多版本)的操作。 说明: 拥有该权限的用户如果在控制台上列举对象失败,可能是因为桶中存在多版本对象。此时需要额外授予该用户列举多版本对象的权限(obs:bucket:ListBucketVersions),才能在控制台正常看到对象列表。 系统策略 无 OBS OperateAccess 拥有该权限的用户可以执行OBS ReadOnlyAccess的所有操作,在此基础上还可以执行上传对象、下载对象、删除对象、获取对象ACL等对象基本操作。 说明: 拥有该权限的用户如果在控制台上列举对象失败,可能是因为桶中存在多版本对象。此时需要额外授予该用户列举多版本对象的权限(obs:bucket:ListBucketVersions),才能在控制台正常看到对象列表。 系统策略 无
  • OBS控制台功能依赖的权限 表3 OBS控制台依赖服务的角色或策略 控制台功能 依赖服务 需配置角色/策略 获取已有域名列表(在配置自定义域名和加速域名时,获取在华为云已有的域名列表) 域名注册服务 Domains 需要增加Domains:domains:getDetails权限后才能访问已有的域名列表。 设置镜像回源规则 对象存储服务 OBS 需要增加Tenant Administrator权限后才能设置镜像回源规则 镜像回源需使用IAM委托功能,创建云服务委托,委托OBS获取源站数据。委托需要给OBS服务授予obs:object:HeadObject、obs:object:PutObject权限。 如果桶开启了SSE-KMS服务端加密功能,对OBS的云服务委托中还需要配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto、kms:dek:crypto权限。 获取镜像回源规则 对象存储服务 OBS 需要增加Tenant Administrator权限后才能获取镜像回源规则 删除镜像回源规则 对象存储服务 OBS 需要增加Tenant Administrator权限后才能删除镜像回源规则 设置DIS通知策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能设置DIS通知策略 使用DIS消息通知需要创建对OBS云服务的委托,委托赋予的权限需为数据接入服务DIS的DIS Administrator或DIS User权限 获取DIS通知策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能获取DIS通知策略 删除DIS通知策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能删除DIS通知策略 设置在线解压策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能设置在线解压策略 获取在线解压策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能获取在线解压策略 删除在线解压策略 对象存储服务 OBS 需要增加Tenant Administrator权限后才能删除在线解压策略 服务端加密 密钥管理服务 KMS 当桶或者桶内对象开启了SSE-KMS服务端加密功能,需要为请求者配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto、kms:dek:crypto权限,才能上传下载对象。 data+创建工作流 数据工坊 DWR 需要增加dwr:workflow:createWorkflow权限后才能创建工作流 data+查询工作流详情 数据工坊 DWR 需要增加dwr:workflow:getWorkflowDetailInfo权限后才能查询工作流详情 data+删除工作流 数据工坊 DWR 需要增加dwr:workflow:deleteWorkflow权限后才能删除工作流 data+更新工作流 数据工坊 DWR 需要增加dwr:workflow:updateWorkflow权限后才能更新工作流 data+查询工作流列表 数据工坊 DWR 需要增加dwr:workflow:listWorkflows权限后才能查询工作流列表 data+API异步启动工作流 数据工坊 DWR 需要增加dwr:workflow:executeAsync权限后才能API异步启动工作流 data+查询工作流实例列表 数据工坊 DWR 需要增加Tenant Administrator权限后才能查询工作流实例列表 data+查询工作流实例 数据工坊 DWR 需要增加dwr:workflow:getWorkflowExecutionInfo权限后才能查询工作流实例 data+恢复失败状态的工作流实例 数据工坊 DWR 需要增加dwr:workflow:executeRestoration权限后才能恢复失败状态的工作流实例 data+开通授权 数据工坊 DWR 需要增加dwr:workflow:createAssumeRole权限后才能开通授权 data+查询授权 数据工坊 DWR 需要增加dwr:workflow:getAuthorizationStatus权限后才能查询授权 data+查询华为云算子模板详情 数据工坊 DWR 需要增加dwr:workflow:getSystemActionTemplate权限后才能查询华为云算子模板详情 data+查询华为云算子模板列表 数据工坊 DWR 需要增加dwr:workflow:listSystemActionTemplates权限后才能查询华为云算子模板列表 data+配置桶触发器 数据工坊 DWR 需要增加Tenant Administrator权限后才能配置桶触发器 data+查询桶触发器 数据工坊 DWR 需要增加Tenant Administrator权限后才能查询桶触发器 data+删除桶触发器 数据工坊 DWR 需要增加Tenant Administrator权限后才能删除桶触发器
  • 请求示例:在URL中携带签名下载对象 GET /object02?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhaLUrzrzRNZxwS72CXeXM%3D HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Fri, 27 Jul 2018 10:52:31 GMT
  • 请求示例:下载对象并重命名,使用response-content-disposition参数 下载对象并重命名,使用response-content-disposition参数实现 1 2 3 4 5 6 GET /object01?response-content-disposition=attachment; filename*=utf-8''name1 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=
  • 响应示例:指定versionId访问指定版本对象 Server: OBS x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Accept-Ranges: bytes x-obs-version-id: G001118A6803675AFFFFD3043F7F91D0 ETag: "21e7e5efb6b73de19e691d6c4e32a9cf" Content-Disposition: attachment Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: binary/octet-stream Content-Length: 392 [392 Bytes object content]
  • 请求示例:获取使用服务器端加密存储的对象 GET /obj001 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:37:22 GMT Authorization: OBS UDSIAMSTUBTEST000003:2tod8LyZOGA0+46HMjmp176XRaI= x-obs-server-side-encryption-customer-key:d09s2lKS9cmQO9135fQXMCV8fsOP02aDWd441g x-obs-server-side-encryption-customer-key-MD5:ZjQpad35Fiw1322Fwa x-obs-server-side-encryption-customer-algorithm:AES256
  • 响应示例:下载对象并重命名,使用attname参数 1 2 3 4 5 6 7 8 9 10 11 12 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 Content-Disposition: attachment; filename*=utf-8''name1 [ 8 Bytes object content]
  • 请求示例:带自定义返回消息头 GET /obj001?response-expires=Thu%2C%2001%20Feb%202015%2017%3A00%3A00%20GMT HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:37:22 GMT Authorization: OBS UDSIAMSTUBTEST000003:2tod8LyZOGA0+46HMjmp176XRaI=
  • 响应示例:获取使用服务器端加密存储的对象 Server: OBS x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Accept-Ranges: bytes ETag: "21e7e5efb6b73de19e691d6c4e32a9cf" Content-Disposition: attachment Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: binary/octet-stream Content-Length: 392 x-obs-server-side-encryption-customer-key-MD5:ZjQpad35Fiw1322Fwa x-obs-server-side-encryption-customer-algorithm:AES256 [392 Bytes object content]
  • 响应示例:在URL中携带签名下载对象 1 2 3 4 5 6 7 8 9 10 11 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 [ 8 Bytes object content]
  • 响应示例:下载对象并重命名,使用response-content-disposition参数 1 2 3 4 5 6 7 8 9 10 11 12 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 Content-Disposition: attachment; filename*=utf-8''name1 [ 8 Bytes object content]
  • 请求示例:下载对象并重命名,使用attname参数 下载对象并重命名,使用attname参数实现 1 2 3 4 5 6 GET /object01?attname=name1 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=
  • 响应示例:带自定义返回消息头 Server: OBS x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Accept-Ranges: bytes ETag: "21e7e5efb6b73de19e691d6c4e32a9cf" Content-Disposition: attachment Date: WED, 01 Jul 2015 02:37:22 GMT Expires: Thu, 01 Feb 2015 17:00:00 GMT Content-Type: binary/octet-stream Content-Length: 392 [392 Bytes object content]
  • 请求示例:指定versionId访问指定版本对象 GET /obj001?versionId=G001118A6803675AFFFFD3043F7F91D0 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:37:22 GMT Authorization: OBS UDSIAMSTUBTEST000003:2tod8LyZOGA0+46HMjmp176XRaI=
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表1。 除公共响应消息头之外,还可能使用如下表3中的消息头。 表3 附加响应消息头 消息头名称 描述 x-obs-expiration 当对象单独设置了对象lifecycle,过期时间以对象lifecycle为准,该消息头用expiry-date描述对象的详细过期信息;如果对象没有设置对象lifecycle,设置了桶级别lifecycle,过期时间以桶级别lifecycle为准,该消息头用expiry-date和rule-id两个键值对描述对象的详细过期信息;否则不显示该头域。 类型:String x-obs-website-redirect-location 当桶设置了Website配置,就可以设置对象元数据的这个属性,Website接入点返回301重定向响应,将请求重定向到该属性指定的桶内的另一个对象或外部的URL。 类型:String x-obs-delete-marker 标识对象是否是删除标记。如果不是,则响应中不会出现该消息头。 类型:Boolean 有效值:true|false 默认值:false x-obs-version-id 对象的版本号。如果该对象无版本号,则响应中不会出现该消息头。 有效值:字符串 默认值:无 x-obs-server-side-encryption 如果服务端加密是SSE-KMS方式,响应包含该头域。 类型:String 示例:x-obs-server-side-encryption:kms x-obs-server-side-data-encryption 如果服务端加密是SSE-KMS方式,且数据加密算法为SM4,响应包含该头域。 类型:String 示例:x-obs-server-side-data-encryption:SM4 x-obs-server-side-encryption-kms-key-id 如果服务端加密是SSE-KMS方式,响应包含该头域,该头域表示主密钥。 类型:String 格式为: regionID:domainID(租户ID):key/key_id 其中regionID是使用密钥所属region的ID;domainID是使用密钥所属租户的租户ID;key_id是本次加密使用的密钥ID。 示例: x-obs-server-side-encryption-kms-key-id:cn-north-4:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0 x-obs-server-side-encryption-customer-algorithm 如果服务端加密是SSE-C方式,响应包含该头域,该头域表示解密使用的算法。 类型:String 示例:x-obs-server-side-encryption-customer-algorithm:AES256 x-obs-server-side-encryption-customer-key-MD5 如果服务端加密是SSE-C方式,响应包含该头域,该头域表示解密使用的密钥的MD5值。 类型:String 示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== x-obs-object-type 对象为非Normal对象时,会返回此头域,可取值为:Appendable。 类型:String x-obs-next-append-position 对象为Appendable对象时,会返回此头域。 类型:Integer
  • 响应示例:指定Range下载对象 指定Range下载对象(下载对象单个区间内容) 1 2 3 4 5 6 7 8 9 10 11 12 13 HTTP/1.1 206 Partial Content Server: OBS x-obs-request-id: 000001748C0DBC35802E360C9E869F31 Accept-Ranges: bytes ETag: "2200446c2082f27ed2a569601ca4e360" Last-Modified: Mon, 14 Sep 2020 01:16:20 GMT Content-Range: bytes 20-30/4583 Content-Type: binary/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSn2JHu4okx9NBRNZAvBGawa3lt3g31g Date: Mon, 14 Sep 2020 09:59:04 GMT Content-Length: 11 [ 11 Bytes object content]
  • 响应示例:判断对象Etag值匹配,下载成功 如果存储的对象的Etag值是682e760adb130c60c120da3e333a8b09,则下载成功 1 2 3 4 5 6 7 8 9 10 11 12 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 5DEB00000164A21E1FC826C58F6BA001 Accept-Ranges: bytes ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSbkdml1sLSvKnoHaRcOwRI+6+ustDwk Date: Mon, 16 Jul 2015 08:04:00 GMT Content-Length: 8 [ 8 Bytes object content]
  • 请求示例:指定Range下载对象 指定Range下载对象(下载对象单个区间内容) 1 2 3 4 5 6 7 GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Mon, 14 Sep 2020 09:59:04 GMT Range:bytes=20-30 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mNPLWQMDWg30PTkAWiqJaLl3ALg=
  • 响应示例:下载缩放图片 1 2 3 4 5 6 7 8 9 10 11 12 13 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E x-image-process:image/resize,w_100 Accept-Ranges: bytes ETag: "3b46eaf02d3b6b1206078bb86a7b7013" Last-Modified: WED, 01 Jul 2015 01:20:29 GMT Content-Type: image/jpeg x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU Date: WED, 01 Jul 2015 04:20:51 GMT Content-Length: 49 [ 49 Bytes object content]
  • 请求示例:判断对象Etag值 如果对象Etag值匹配则下载该对象 1 2 3 4 5 6 7 GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT If-Match: 682e760adb130c60c120da3e333a8b09 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=
  • 请求示例:下载整个对象 1 2 3 4 5 6 GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=
  • 响应示例:下载整个对象 1 2 3 4 5 6 7 8 9 10 11 12 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E Accept-Ranges: bytes ETag: "3b46eaf02d3b6b1206078bb86a7b7013" Last-Modified: WED, 01 Jul 2015 01:20:29 GMT Content-Type: binary/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU Date: WED, 01 Jul 2015 04:24:33 GMT Content-Length: 4572 [4572 Bytes object content]
  • 请求示例:下载缩放图片 1 2 3 4 5 6 GET /example.jpg?x-image-process=image/resize,w_100 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:20:51 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:9Nsx45WjaVxlLnxlO9awasXn83N=
  • 请求消息头 该请求除使用公共消息头外,还可以使用附加的消息头来完成获取对象的功能,消息头的意义如表2所示。 表2 请求消息头 消息头名称 描述 是否必选 Range 获取对象时,获取在Range范围内的对象内容。如果Range不合法则忽略此字段获取整个对象。 Range是一个范围,它的起始值最小为0,最大为对象长度减1。Range范围的起始值为必填项,如果Range只包含起始值,表示获取起始值到对象长度减1这个区间的对象内容。 携带Range头域后,响应消息的ETag仍是对象的ETag,而不是Range范围内对象的ETag。 类型:String bytes=byte_range 示例1:bytes=0-4 示例2:bytes=1024 示例3:bytes=10-20,30-40(表示多个区间) 否 If-Modified-Since 如果对象在请求中指定的时间之后有修改,则返回对象内容;否则的话返回304(not modified)。 类型:符合http://www.ietf.org/rfc/rfc2616.txt规定格式的HTTP时间字符串。 否 If-Unmodified-Since 如果对象在请求中指定的时间之后没有修改,则返回对象内容;否则的话返回412(precondition failed)。 类型:符合http://www.ietf.org/rfc/rfc2616.txt规定格式的HTTP时间字符串。 否 If-Match 如果对象的ETag和请求中指定的ETag相同,则返回对象内容,否则的话返回412(precondition failed)。 类型:String (ETag值,例:0f64741bf7cb1089e988e4585d0d3434。) 否 If-None-Match 如果对象的ETag和请求中指定的ETag不相同,则返回对象内容,否则的话返回304(not modified)。 类型:String (ETag值,例:0f64741bf7cb1089e988e4585d0d3434。) 否 x-obs-server-side-encryption-customer-algorithm SSE-C方式下使用该头域,该头域表示加密使用的算法。 类型:String 示例:x-obs-server-side-encryption-customer-algorithm:AES256 约束:需要和x-obs-server-side-encryption-customer-key, x-obs-server-side-encryption-customer-key-MD5一起使用。 否。当使用SSE-C方式时,必选。 x-obs-server-side-encryption-customer-key SSE-C方式下使用该头域,该头域表示加密使用的密钥。该密钥用于解密对象。 类型:String 示例:x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= 约束:该头域由256-bit的密钥经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key-MD5一起使用。 否。当使用SSE-C方式时,必选。 x-obs-server-side-encryption-customer-key-MD5 SSE-C方式下使用该头域,该头域表示加密使用的密钥的MD5值。MD5值用于验证密钥传输过程中没有出错。 类型:String 示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== 约束:该头域由密钥的128-bit MD5值经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key一起使用。 否。当使用SSE-C方式时,必选。
  • 请求消息参数 GET操作获取对象内容时,允许用户通过请求参数的方式对一些消息头值进行重写,可以重写的消息头有:Content-Type、Content-Language、Expires、Cache-Control、Content-Disposition以及Content-Encoding共6个。另外所需恢复的对象拥有多个版本时,可以通过versionId参数,指定需要下载的版本。具体的说明如表1所示。 OBS不会处理请求中携带的Accept-Encoding,也不会对上传的数据做任何压缩、解压的操作,压缩解压的操作由客户端决定。某些HTTPClient在默认情况下可能会根据服务端返回的Content-Encoding对数据做相应的解压处理,客户端程序需要根据自己的需求决定是否做解压处理以及如何解压(修改OBS端保存的对象元数据Content-Encoding或者在下载对象时对Content-Encoding进行重写)。如果在下载对象的请求中指明了重写消息头,OBS返回的HTTP标准消息头中将以请求中指定的重写内容为准。 表1 请求消息参数 参数名称 描述 是否必选 response-content-type 重写响应中的Content-Type头。 类型:String 否 response-content-language 重写响应中的Content-Language头。 类型:String 否 response-expires 重写响应中的Expires头。 类型:String 否 response-cache-control 重写响应中的Cache-Control头。 类型:String 否 response-content-disposition 重写响应中的Content-Disposition头。 类型:String 示例: response-content-disposition=attachment; filename*=utf-8''name1 下载对象重命名为“name1”。 否 response-content-encoding 重写响应中的Content-Encoding头。 类型:String 否 versionId 指定获取对象的版本号。 类型:String 否 x-image-process 图片处理服务。 示例: 命令方式:x-image-process=image/commands 样式方式:x-image-process=style/stylename 详见《图片处理特性指南》。 否 attname 重写响应中的Content-Disposition头。 类型:String 示例: attname=name1 下载对象重命名为“name1”。 否
共100000条