华为云用户手册

  • 响应示例:设置桶的网站配置,并将文件夹请求重定向到页面 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSLjAKDDyha8LY/HcoFNfbLBeAKCAYcv x-obs-request-id: 0000018A3A09D30CD306902FC7572429 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT
  • 响应示例:设置桶的网站配置,并指定可选的重定向规则 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSxixo46vLYhGrY/zwgqlM0fMNpeFthi x-obs-request-id: 0000018A39F2E328D3888F46DB9BB5A2 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT
  • 响应示例:将该桶的所有请求重定向至其他桶或URL 1 2 3 4 5 6 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000164360D144670B9D02AABC6 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSItqMZ/AoFUX97l1xx8s67V3cCQtXWk Date: WED, 01 Jul 2015 03:40:29 GMT Content-Length: 0
  • 请求消息元素 在此请求中,需要在请求的消息体中配置桶的网站配置信息,配置信息以XML格式上传。 如果重定向所有请求,网站配置元素如表1描述。 表1 重定向所有请求Website配置元素 名称 描述 是否必选 WebsiteConfiguration 网站配置的根节点。 类型:Container 父节点:无 是 RedirectAllRequestsTo 描述所有请求的重定向行为,如果这个节点出现,所有其他的兄弟节点都不能出现。 类型:Container 父节点:WebsiteConfiguration 是 HostName 描述重定向的站点名。 类型:String 父节点:RedirectAllRequestsTo 是 Protocol 描述重定向请求时使用的协议(http,https),默认使用http协议。 类型:String 父节点:RedirectAllRequestsTo 否 如果想要设定重定向规则,网站配置元素如表2描述。 表2 设定重定向规则Website配置元素 名称 描述 是否必选 WebsiteConfiguration Website配置的根节点。 类型:Container 父节点:无 是 IndexDocument Suff元素。 类型:Container 父节点:WebsiteConfiguration 是 Suffix Suffix元素被追加在对文件夹的请求的末尾(例如:Suffix配置的是“index.html”,请求的是“samplebucket/images/”,返回的数据将是“samplebucket”桶内名为“images/index.html”的对象的内容)。Suffix元素不能为空或者包含“/”字符。 类型:String 父节点:IndexDocument 是 ErrorDocument Key元素。 类型:Container 父节点:WebsiteConfiguration 否 Key 当4XX错误出现时使用的对象的名称。这个元素指定了当错误出现时返回的页面。 类型:String 父节点:ErrorDocument 条件:父节点ErrorDocument存在时 否 RoutingRules Routing元素。 类型:Container 父节点:WebsiteConfiguration 否 RoutingRule 重定向规则的元素。一条重定向规则包含一个Condition和一个Redirect,当Condition匹配时,Redirect生效。 类型:Container 父节点:RoutingRules 元素中至少要有一个RoutingRule元素 是 Condition 描述重定向规则匹配的条件的元素。 类型:Container 父节点:RoutingRule 否 KeyPrefixEquals 描述当重定向生效时对象名的前缀。 例如: 重定向ExamplePage.html对象的请求,KeyPrefixEquals设为ExamplePage.html。 类型:String 父节点:Condition 条件:父节点Condition存在,并且兄弟节点HttpErrorCodeReturnedEquals不存在。如果设定了两个条件,只有都匹配时,Redirect才生效。 否 HttpErrorCodeReturnedEquals 描述Redirect生效时的HTTP错误码。当发生错误时,如果错误码等于这个值,那么Redirect生效。 例如: 当返回的http错误码为404时重定向到NotFound.html,可以将Condition中的HttpErrorCodeReturnedEquals设置为404,Redirect中的ReplaceKeyWith设置为NotFound.html。 类型:String 父节点:Condition 条件:父节点Condition存在,并且兄弟节点KeyPrefixEquals不存在。如果设定了多个条件,需要同时匹配所有的条件,Redirect才可生效。 否 Redirect 重定向信息的元素。可以重定向到另一个站点、另一个页面或使用另一个协议。当事件或错误发生时,可以指定不同的返回码。 类型:Container 父节点:RoutingRule 是 Protocol 描述重定向请求时使用的协议。 类型:String 父节点:Redirect 可选值:http、https 条件:有其他兄弟节点存在时非必选 否 HostName 描述重定向请求时使用的站点名。 类型:String 父节点:Redirect 条件:有其他兄弟节点存在时非必选 否 ReplaceKeyPrefixWith 描述重定向请求时使用的对象名前缀,请求中的对象名会将KeyPrefixEquals的内容替换为ReplaceKeyPrefixWith的内容。 例如: 想把所有对docs(目录下的对象)的请求重定向到documents(目录下的对象),可以将Condition中的KeyPrefixEquals设置为docs,Redirect中的ReplaceKeyPrefixWith设置为documents。那么对于对象名称为"docs/a.html",重定向的结果为"documents/a.html"。 类型:String 父节点:Redirect 条件:有其他兄弟节点存在时非必选,不可与ReplaceKeyWith同时存在 否 ReplaceKeyWith 描述重定向请求时使用的对象名,请求中的整个对象名会被替换为ReplaceKeyWith的内容。 例如: 想把所有对"docs"目录下的所有对象的请求重定向到"documents/error.html",可以将Condition中的KeyPrefixEquals设置为docs,Redirect中的ReplaceKeyWith设置为"documents/error.html"。那么对于对象名称为"docs/a.html"和"docs/b.html",重定向的结果都为"documents/error.html"。 类型:String 父节点:Redirect 条件:有其他兄弟节点存在时非必选,不可与ReplaceKeyPrefixWith同时存在 否 HttpRedirectCode 描述响应中的HTTP状态码。 类型:String 父节点:Redirect 条件:有其他兄弟节点存在时非必选 否
  • 功能介绍 OBS允许在桶内保存静态的网页资源,如.html网页文件、flash文件、音视频文件等,当客户端通过桶的Website接入点访问这些对象资源时,浏览器可以直接解析出这些支持的网页资源,呈现给最终用户。典型的应用场景有: 重定向所有的请求到另外一个站点。 设定特定的重定向规则来重定向特定的请求。 本接口实现为桶创建或更新网站配置信息。 要正确执行此操作,需要确保执行者有PutBucketWebsite权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。 1.尽量避免目标桶名中带有“.”,否则通过HTTPS访问时可能出现客户端校验证书出错。 2.设置桶的网络配置请求消息体的上限是10KB。
  • 响应示例 1 2 3 4 5 6 7 HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643627112BD03512FC94A4 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSYi6wLC4bkrvuS9sqnlRjxK2a5Fe3ry Date: WED, 01 Jul 2015 03:51:52 GMT Content-Length: 0
  • 响应示例:为桶配置两条CORS规则 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCTPXg+yj9IXC9r6mgmWgfSfqQGvHM3rS x-obs-request-id: 0000018A3A14051AD2886D166EE13D98 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT
  • 请求消息元素 在此请求中,需要在请求的消息体中配置桶的CORS配置信息。配置信息以XML格式上传,具体的配置元素如表2描述。 表2 CORS配置元素 名称 描述 是否必选 CORSConfiguration CORSRules的根节点,最大不超过64 KB。 类型:Container 父节点:无。 是 CORSRule CORS规则,CORSConfiguration下可最多包含100个规则。 类型:Container 父节点:CORSConfiguration。 是 ID 一条Rule的标识,由不超过255个字符的字符串组成。 类型:String 父节点:CORSRule。 否 AllowedMethod CORS规则允许的Method。 类型:String 有效值:GET、PUT、HEAD、POST 、DELETE 父节点:CORSRule。 是 AllowedOrigin CORS规则允许的Origin(表示域名的字符串,仅支持英文域名),通过正则表达式进行匹配,可以带一个匹配符“*”。每一个AllowedOrigin可以带最多一个“*”通配符。 类型:String 父节点:CORSRule。 是 AllowedHeader 配置CORS请求中允许携带的“Access-Control-Request-Headers”头域。如果一个请求带了“Access-Control-Request-Headers”头域,则只有匹配上AllowedHeader中的配置才认为是一个合法的CORS请求(通过正则表达式进行匹配)。每一个AllowedHeader可以带最多一个“*”通配符,不可出现空格。 类型:String 父节点:CORSRule。 否 MaxAgeSeconds 客户端可以缓存的CORS响应时间,以秒为单位。 每个CORSRule可以包含至多一个MaxAgeSeconds,可以设置为负值。 类型:Integer 父节点:CORSRule。 否 ExposeHeader CORS响应中带的附加头域,给客户端提供额外的信息,不可出现空格。 类型:String 父节点:CORSRule。 否
  • 功能介绍 CORS(Cross Origin Resource Sharing),即跨域资源共享,是W3C标准化组织提出的一种规范机制,允许客户端的跨域请求的配置。在通常的网页请求中,由于安全策略SOP(Same Origin Policy)的存在,一个网站的脚本和内容是不能与另一个网站的脚本和内容发生交互的。 OBS允许在桶内保存静态的网页资源,在正确的使用下,OBS的桶可以成为网站资源(请参见设置桶的网站配置)。只有进行了适当的CORS配置,OBS中的网站才能响应另一个网站的跨域请求。 典型的应用场景如下: 你可以使用CORS支持,使用JavaScript和HTML 5来构建Web应用,直接访问OBS中的资源,而不再需要代理服务器做中转。 可以使用HTML 5中的拖拽功能,直接向OBS上传文件,展示上传进度,或是直接从Web应用中更新内容。 托管在不同域中的外部网页、样式表和HTML 5应用,现在可以引用存储在OBS中的Web字体或图片,让这些资源能被多个网站共享。 要正确执行此操作,需要确保执行者有PutBucketCORS权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。
  • 请求消息头 该请求使用公共消息头外加CORS请求消息头,具体参见表3和表1。 表1 CORS请求消息头 消息头名称 描述 是否必选 Content-MD5 按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。也支持设置Content-SHA256头域,其值为消息体256-bit SHA256值经过base64编码后得到的字符串,Content-MD5和Content-SHA256二选一。 类型:String 示例:n58IG6hfM7vqI4K0vnWpog== 是
  • 请求消息元素 更改桶的ACL请求需要在消息元素中带上ACL信息,元素的具体含义如表3所示。 表2 附加请求消息元素 元素名称 描述 是否必选 Owner 桶的所有者信息,包含ID。 类型:XML 是 ID 被授权用户的租户Id。 类型:String 是 Grant 用于标记用户及用户的权限。单个桶的ACL,Grant元素不能超过100个。 类型:XML 否 Grantee 记录用户信息。 类型:XML 否 Canned 向所有人授予权限。 取值范围:Everyone 类型:String 否 Delivered 桶的ACL是否向桶内对象传递。作用于桶内所有对象。 类型:Boolean 默认:false 否 Permission 授予的权限。详情参见桶ACL访问权限。 取值范围:READ | READ_ACP | WRITE | WRITE_ACP | FULL_CONTROL 类型:String 否 AccessControlList 访问控制列表,包含Grant、 Grantee、Permission三个元素。 类型:XML 是
  • 功能介绍 OBS支持对桶操作进行权限控制。默认情况下,只有桶的创建者才有该桶的读写权限。用户也可以设置其他的访问策略,比如对一个桶可以设置公共访问策略,允许所有人对其都有读权限。 OBS用户在创建桶时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的桶更改或者获取ACL(access control list) 。一个桶的ACL最多支持100条Grant授权。PUT接口为幂等的覆盖写语意,新设置的桶ACL将覆盖原有的桶ACL,如果需要修改或者删除某条ACL重新PUT一个新的桶ACL即可。 使用桶ACL进行权限控制请参考《对象存储服务权限配置指南》的OBS权限控制概述章节。
  • 响应示例:使用头域方式指定的访问权限 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT
  • 请求消息头 使用者可以使用头域设置的方式来更改桶的ACL,每一种头域设置的ACL都有一套自己预先定义好的被授权用户以及相应权限,通过头域设置的方式授予访问权限,使用者必须添加以下的头域并且指定取值。 表1 头域方式设置桶ACL 名称 描述 是否必须 x-obs-acl 通过canned ACL的方式来设置桶的ACL。 取值范围:private | public-read | public-read-write | public-read-delivered | public-read-write-delivered 类型:String 否
  • 响应示例 1 2 3 4 5 6 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000164361F2954B4D063164704 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT78HTIBuhe0FbtSptrb/akwELtwyPKs Date: WED, 01 Jul 2015 02:37:22 GMT Content-Length: 0
  • 请求示例:使用头域方式指定的访问权限 PUT /?acl HTTP/1.1 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4= User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com x-obs-acl: private Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: application/xml
  • 用户签名验证 OBS通过AK/SK对请求进行签名,在向OBS发送请求时,客户端发送的每个消息头需要包含由SK、请求时间、请求类型等信息生成的签名信息。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 用户可以在IAM服务中获取AK和SK,获取的方法请参见获取访问密钥(AK/SK)。 OBS根据应用场景,提供了Header中携带签名、URL中携带签名和基于浏览器上传的表单中携带签名3种签名计算方式。 OBS提供的SDK已集成了签名计算,建议您使用SDK进行开发。 以Header中携带签名为例,用户签名验证流程如表1所示。Header中携带签名方法的具体参数说明及代码示例,请参见Header中携带签名。 表1 OBS签名计算和验证步骤 步骤 示例 签名计算 1. 构造HTTP消息 PUT /object HTTP/1.1 Host: bucket.obs.cn-north-4.myhuaweicloud.com Date: Tue, 04 Jun 2019 06:54:59 GMT Content-Type: text/plain Content-Length: 5913 2. 按照签名规则计算StringToSign StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + CanonicalizedResource 3. 准备AK和SK AK: ****** SK: ****** 4. 计算签名Signature Signature = Base64( HMAC-SHA1( SecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) ) 5. 添加签名头域发送到OBS服务 PUT /object HTTP/1.1 Host: bucket.obs.cn-north-4.myhuaweicloud.com Date: Tue, 04 Jun 2019 06:54:59 GMT Content-Type: text/plain Content-Length: 5913 Authorization: OBS AccessKeyID:Signature 签名验证 6. 接收HTTP消息 PUT /object HTTP/1.1 Host: bucket.obs.cn-north-4.myhuaweicloud.com Date: Tue, 04 Jun 2019 06:54:59 GMT Content-Type: text/plain Content-Length: 5913 Authorization: OBS AccessKeyID:Signature 7. 根据请求中的AK获取SK 从头域Authorization中取出AK,去IAM取回用户的SK 8. 按照签名规则计算StringToSign StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + CanonicalizedResource 9. 计算签名Signature Signature = Base64( HMAC-SHA1( SecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) ) 10. 验证签名 验证头域Authorization中的Signature与服务端计算的Signature是否相等 相等:签名验证通过 不相等:签名验证失败 父主题: 认证鉴权
  • 请求示例:携带服务端加密请求消息头 PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 05:15:55 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZB0hFwaHubi1aKHv7dSZjJts40g= Content-Length: 102015348 x-obs-server-side-encryption-customer-key: g0lCfA3Dv40jZz5SQJ1ZukLRFqtd093ksp192 x-obs-server-side-encryption-customer-key-MD5: Eo93ne1X/iTcs0132 x-obs-server-side-encryption-customer-algorithm: AES256 [102015348 Byte part content]
  • 响应示例:反馈服务加密附加响应消息头 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D40956A703289CA066F1 ETag: "b026324c6904b2a9cb4b88d6d61c81d1" x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCUQu/EOEVSMa04GXVwy0z9WI+BsDKvfh Date: WED, 01 Jul 2015 05:15:55 GMT Content-Length: 0 x-obs-server-side-encryption-customer-algorithm: AES256 x-obs-server-side-encryption-customer-key-MD5: Eo93ne1X/iTcs0132
  • 请求消息头 该请求使用公共消息头,具体请参考表3。 表2 服务端加密请求消息头 消息头名称 描述 是否必选 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方式时,必选,需要与初始化上传段任务使用相同的MD5值。
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表1。 表3 附加响应消息头 消息头名称 描述 x-obs-server-side-encryption 如果服务端加密是SSE-KMS方式,响应包含该头域。 类型:String 示例:x-obs-server-side-encryption:kms 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==
  • 错误响应消息说明 如果段序号超过范围[1,10000],则返回错误400 Bad Request。 如果段大小超过5G,则返回错误400 Bad Request。 如果AccessKey或签名无效,OBS返回403 Forbidden, 错误码为AccessDenied。 查询桶是否存在,如果桶不存在,OBS返回404 Not Found,错误码为NoSuchBucket。 检查桶的ACL,判断用户DomainId是否具有指定桶的写权限,如果没有权限,则OBS返回403 Forbidden,错误码为AccessDenied。 检查多段上传任务是否存在,如果不存在,OBS返回404 Not Found,错误码为NoSuchUpload。 检查请求用户是否是多段上传任务的发起者(Initiator),如果不是,OBS返回403 Forbidden, 错误码为AccessDenied。 其他错误已包含在表2中。
  • 请求示例 PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 05:15:55 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZB0hFwaHubi1aKHv7dSZjJts40g= Content-Length: 102015348 [102015348 Byte part content]
  • 响应示例 1 2 3 4 5 6 7 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D40956A703289CA066F1 ETag: "b026324c6904b2a9cb4b88d6d61c81d1" x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCUQu/EOEVSMa04GXVwy0z9WI+BsDKvfh Date: WED, 01 Jul 2015 05:15:55 GMT Content-Length: 0
  • 功能介绍 多段上传任务创建后,用户可以通过指定多段上传任务号,通过上传段接口为特定的任务上传段,从客户端上传新数据。同一个对象的同一个多段上传任务在上传段时,上传的顺序对后续的合并操作没有影响,也即支持多个段并发上传。 段大小范围是[100KB,5GB],但在进行合并段操作时,最后一个段的大小范围为[0,5GB]。上传的段的编号也有范围限制,其范围是[1,10000]。 该操作支持服务端加密功能。 段任务中的partNumber是唯一的,重复上传相同partNumber的段,后一次上传会覆盖前一次上传内容。多并发上传同一对象的同一partNumber时,服务端遵循Last Write Win策略,但“Last Write”的时间定义为段元数据创建时间。为了保证数据准确性,客户端需要加锁保证同一对象的同一个段上传的并发性。同一对象的不同段并发上传不需要加锁。
  • 错误响应消息 如果AccessKey或签名无效,OBS返回403 Forbidden,错误码为AccessDenied。 查询源桶或目的桶是否存在,如果不存在,OBS返回404 Not Found,错误码为NoSuchBucket。 如果源对象不存在,OBS返回404 Not Found,错误码为NoSuchKey。 如果用户对指定对象没有读权限,OBS返回403 Forbidden,错误码为AccessDenied。 如果用户对目的桶没有写权限,OBS返回403 Forbidden,错误码为AccessDenied。 查询指定的任务不存在,OBS返回404 Not Found,错误码为NoSuchUpload。 如果用户不是多段上传任务的发起者,OBS返回403 Forbidden,错误码为AccessDenied。 当拷贝的单段超过5G时,OBS返回400 Bad Request。 如果段序号超过范围[1,10000],OBS返回错误400 Bad Request。 其他错误已包含在表2中。
  • 请求示例 PUT /tobject02?partNumber=2&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 05:16:32 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:dSnpnNpawDSsLg/xXxaqFzrAmMw= x-obs-copy-source: /destbucket/object01
  • 请求示例:指定versionId进行拷贝段 PUT /tobject02?partNumber=2&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 05:16:32 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:dSnpnNpawDSsLg/xXxaqFzrAmMw= x-obs-copy-source: /examplebucket/object01?versionId=G001118A6456208AFFFFD24829FCF614
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表1。 表3 附加响应消息头 消息头名称 描述 x-obs-server-side-encryption 如果服务端加密是SSE-KMS方式,响应包含该头域。 类型:String 示例:x-obs-server-side-encryption:kms 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==
  • 功能介绍 多段上传任务创建后,用户可以通过指定多段上传任务号,为特定的任务上传段。添加段的方式还包括调用段拷贝接口。允许客户将已上传对象的一部分或全部拷贝为段。 该操作支持服务端加密功能。 拷贝段的结果不能仅根据HTTP返回头域中的status_code来判断请求是否成功,头域中status_code返回200时表示服务端已经收到请求,且开始处理拷贝段请求。拷贝是否成功会在响应消息的body中,只有body体中有ETag标签才表示成功,否则表示拷贝失败。 将源对象object拷贝为一个段part1,如果在拷贝操作之前part1已经存在,拷贝操作执行之后老段数据part1会被新拷贝的段数据覆盖。拷贝成功后,只能列举到最新的段part1,老段数据将会被删除。因此在使用拷贝段接口时请确保目标段不存在或者已无价值,避免因拷贝段导致数据误删除。拷贝过程中源对象object无任何变化。
共100000条