华为云用户手册

  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表1。 除公共响应消息头之外,还可能使用如表2中的消息头。 表2 附加响应消息头 消息头名称 消息头类型 描述 x-obs-version-id String 参数解释: 对象的版本号。如果桶的多版本状态为开启,则会返回对象的版本号。 约束限制: 无 取值范围: 无 默认取值: 无 x-obs-server-side-encryption String 参数解释: 该头域表示服务端的加密方式。 示例:x-obs-server-side-encryption:kms 约束限制: 如果服务端加密是SSE-KMS方式,响应包含该头域。 取值范围: kms AES256 默认取值: 无 x-obs-server-side-data-encryption String 参数解释: 如果服务端加密是SSE-KMS方式,且 数据加密 算法为SM4,响应包含该头域。 示例:x-obs-server-side-data-encryption:SM4 约束限制: 仅在SSE-KMS加密方式下使用该头域。 取值范围: SM4:国密SM4算法 默认取值: 无 x-obs-server-side-encryption-kms-key-id String 参数描述: 当加密方式为SSE-KMS且使用指定密钥加密时,需输入密钥ID。密钥ID获取方法请参见查看密钥。 约束限制: 当您设置了x-obs-server-side-encryption头域且赋值为“kms”,即选择kms加密方式时,才能使用该头域指定加密密钥。 默认取值: 当您选择使用kms加密方式,但未设置此头域时,默认的主密钥将会被使用。如果默认主密钥不存在,系统将默认创建并使用。 x-obs-server-side-encryption-customer-algorithm String 参数解释: 该头域表示加密使用的算法。 示例:x-obs-server-side-encryption-customer-algorithm: AES256 约束限制: 如果服务端加密是SSE-C方式,响应包含该头域。 取值范围: AES256 默认取值: 无 x-obs-server-side-encryption-customer-key-MD5 String 参数解释: 该头域表示加密使用的密钥的MD5值。 示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== 约束限制: 如果服务端加密是SSE-C方式,响应包含该头域。 取值范围: 密钥的MD5值。 默认取值: 无 x-obs-storage-class String 参数解释: 对象的存储类别。 约束限制: 对象为非标准存储对象时,会返回此头域。 取值范围: WARM COLD DEEP_ARCHIVE 默认取值: 无
  • 请求示例:桶开启多版本时上传对象 1 2 3 4 5 6 7 8 9 10 11 PUT /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:17:12 GMT x-obs-storage-class: WARM Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uFVJhp/dJqj/CJIVLrSZ0gpw3ng= Content-Length: 10240 Expect: 100-continue [1024 Byte data content]
  • WORM 如果桶的WORM开关是开启的,则可以为对象配置WORM。您可以通过携带头域x-obs-object-lock-mode和x-obs-object-lock-retain-until-date在上传对象的同时指定对象的保护策略,如果您不携带这些头域,但配置了桶级默认WORM策略,则新上传的对象会自动应用默认策略。您还可以在上传后配置或修改对象级WORM保护策略。 在桶的WORM开关开启时,系统会自动打开多版本功能。WORM保护是基于对象版本号的,配置WORM的版本受到WORM保护,没有配置WORM的版本可正常删除。例如,test.txt 001受到WORM保护。此时再次上传同名文件,产生新的对象版本test.txt 002,test.txt 002并未配置WORM,那么test.txt 002就不受保护可以正常删除。当您下载对象时,不指定版本号下载的是最新对象,也就是test.txt 002。
  • 请求示例:上传对象 1 2 3 4 5 6 7 8 9 10 PUT /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:11:15 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:gYqplLq30dEX7GMi2qFWyjdFsyw= Content-Length: 10240 Expect: 100-continue [1024 Byte data content]
  • 与POST上传的区别 PUT上传中参数通过请求头域传递;POST上传则作为消息体中的表单域传递。 PUT上传需在URL中指定对象名;POST上传提交的URL为桶 域名 ,无需指定对象名。两者的请求行分别为: PUT /ObjectName HTTP/1.1 POST / HTTP/1.1 使用PUT上传请求时,消息体中如果使用POST格式,则上传到OBS中的对象会以表单形式呈现。 关于POST上传的更多详细信息,请参考POST上传。
  • 请求示例:上传对象的同时设置ACL 1 2 3 4 5 6 7 8 9 10 11 PUT /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:13:55 GMT x-obs-grant-read:id=52f24s3593as5730ea4f722483579ai7,id=a93fcas852f24s3596ea8366794f7224 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:gYqplLq30dEX7GMi2qFWyjdFsyw= Content-Length: 10240 Expect: 100-continue [1024 Byte data content]
  • 响应示例:上传对象 1 2 3 4 5 6 7 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000164364C10805D385E1E3C67 ETag: "d41d8cd98f00b204e9800998ecf8427e" x-obs-id-2: 32AAAWJAMAABAAAQAAEAABAAAQAAEAABCTzu4Jp2lquWuXsjnLyPPiT3cfGhqPoY Date: WED, 01 Jul 2015 04:11:15 GMT Content-Length: 0
  • 响应示例:上传对象的同时设置ACL 1 2 3 4 5 6 7 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BB7800000164845759E4F3B39ABEE55E ETag: "d41d8cd98f00b204e9800998ecf8427e" x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAA BCS ReVRNuas0knI+Y96iXrZA7BLUgj06Z Date: WED, 01 Jul 2015 04:13:55 GMT Content-Length: 0
  • 功能介绍 用户在OBS系统中创建了桶之后,可以采用PUT操作的方式将对象上传到桶中。上传对象操作是指在指定的桶内增加一个对象,执行该操作需要用户拥有桶的写权限。 同一个桶中存储的对象名是唯一的。 在桶未开启多版本的情况下,如果在指定的桶内已经有相同的对象键值的对象,用户上传的新对象会覆盖原来的对象;为了确保数据在传输过程中没有遭到破坏,用户可以在请求消息头中加入Content-MD5参数。在这种情况下,OBS收到上传的对象后,会对对象进行MD5校验,如果不一致则返回出错信息。 用户还可以在上传对象时指定x-obs-acl参数,设置对象的权限控制策略。如果匿名用户在上传对象时未指定x-obs-acl参数,则该对象默认可以被所有OBS用户访问。 该操作支持服务端加密功能。 单次上传对象大小范围是[0, 5GB],如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。 OBS没有文件夹的概念。为了使用户更方便进行管理数据,OBS提供了一种方式模拟文件夹:通过在对象的名称中增加“/”,例如“test/123.jpg”。此时,“test”就被模拟成了一个文件夹,“123.jpg”则模拟成“test”文件夹下的文件名了,而实际上,对象名称(Key)仍然是“test/123.jpg”。此类命名方式的对象,在控制台上会以文件夹的形式展示。当您上传此类方式命名的对象时,如果其大小不为0,控制台上会展示为空文件夹,但是存储总用量为对象大小。 对象名中包含特殊字符时需要进行URL编码,例如:#obj需要编码为%23obj。
  • 响应示例 1 2 3 4 5 6 7 8 9 10 11 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643632D12EFCE1C1294555 Access-Control-Allow-Origin: www.example.com Access-Control-Allow-Methods: POST,GET,HEAD,PUT,DELETE Access-Control-Max-Age: 100 Access-Control-Expose-Headers: ExposeHeader_1,ExposeHeader_2 Access-Control-Allow-Credentials: true x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAAB CS +DXV4zZetbTqFehhEcuXywTa/mi3T3 Date: WED, 01 Jul 2015 04:02:19 GMT Content-Length: 0
  • 请求示例 1 2 3 4 5 6 7 8 OPTIONS /object_1 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:02:19 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:bQZG9c2aokAJsHOOkuVBK6cHZZQ= Origin: www.example.com Access-Control-Request-Method: PUT
  • 响应消息样式 1 2 3 4 5 6 7 8 9 HTTP/1.1 status_code Content-Type: type Access-Control-Allow-Origin: origin Access-Control-Allow-Methods: method Access-Control-Allow-Header: header Access-Control-Max-Age: time Access-Control-Expose-Headers: header Date: date Content-Length: length
  • 请求消息头 该请求使用的消息头如下表1所示。 表1 OPTIONS请求消息头 消息头名称 描述 是否必选 Origin 预请求指定的跨域请求Origin(通常为域名)。 类型:String 是 Access-Control-Request-Method 实际请求可以带的HTTP方法,可以带多个方法头域。 类型:String 有效值:GET、PUT、HEAD、POST 、DELETE 是 Access-Control-Request-Headers 实际请求可以带的HTTP头域,可以带多个头域。 类型:String 否
  • 错误响应消息 此请求可能的特殊错误如下表3描述。 表3 特殊错误 错误码 描述 HTTP状态码 Bad Request Invalid Access-Control-Request-Method: null 桶配置了CORS,OPTIONS桶时,没有加入method头域。 400 BadRequest Bad Request Insufficient information. Origin request header needed. 桶配置了CORS,OPTIONS桶时,没有加入origin头域。 400 BadRequest AccessForbidden CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec. 桶配置了CORS,OPTIONS桶时,Origin、method、Headers与任一rule匹配不上。 403 Forbidden 其余错误已经包含在表2中。
  • 响应消息头 该请求使用的消息头如下表2所示。 表2 CORS请求消息头 消息头名称 描述 Access-Control-Allow-Origin 如果请求的Origin满足服务端的CORS配置,则在响应中包含这个Origin。 类型:String Access-Control-Allow-Headers 如果请求的headers满足服务端的CORS配置,则在响应中包含这个headers。 类型:String Access-Control-Max-Age 服务端CORS配置中的MaxAgeSeconds。 类型:Integer Access-Control-Allow-Methods 如果请求的Access-Control-Request-Method满足服务端的CORS配置,则在响应中包含这条rule中的Methods。 类型:String 有效值:GET、PUT、HEAD、POST 、DELETE Access-Control-Expose-Headers 服务端CORS配置中的ExposeHeader。 类型:String
  • 响应示例 1 2 3 4 5 6 7 8 9 10 11 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016436314E8FF936946DBC9C Access-Control-Allow-Origin: www.example.com Access-Control-Allow-Methods: POST,GET,HEAD,PUT,DELETE Access-Control-Max-Age: 100 Access-Control-Expose-Headers: ExposeHeader_1,ExposeHeader_2 Access-Control-Allow-Credentials: true x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTlYimJvOyJncCLNm5y/iz6MAGLNxTuS Date: WED, 01 Jul 2015 04:02:15 GMT Content-Length: 0
  • 响应消息样式 1 2 3 4 5 6 7 8 9 HTTP/1.1 status_code Content-Type: application/xml Access-Control-Allow-Origin: origin Access-Control-Allow-Methods: method Access-Control-Allow-Header: header Access-Control-Max-Age: time Access-Control-Expose-Headers: header Date: date Content-Length: length
  • 错误响应消息 此请求可能的特殊错误如下表3描述。 表3 特殊错误 错误码 描述 HTTP状态码 Bad Request Invalid Access-Control-Request-Method: null 桶配置了CORS,OPTIONS桶时,没有加入method头域。 400 BadRequest Bad Request Insufficient information. Origin request header needed. 桶配置了CORS,OPTIONS桶时,没有加入origin头域。 400 BadRequest AccessForbidden CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec. 桶配置了CORS,OPTIONS桶时,Origin、method、Headers与任一rule匹配不上。 403 Forbidden 其余错误已经包含在表2中。
  • 响应消息头 该响应使用的消息头如下表2所示。 表2 CORS响应消息头 消息头名称 描述 Access-Control-Allow-Origin 如果请求的Origin满足服务端的CORS配置,则在响应中包含这个Origin。 类型:String Access-Control-Allow-Headers 如果请求的headers满足服务端的CORS配置,则在响应中包含这个headers。 类型:String Access-Control-Max-Age 服务端CORS配置中的MaxAgeSeconds。 类型:Integer Access-Control-Allow-Methods 如果请求的Access-Control-Request-Method满足服务端的CORS配置,则在响应中包含这条rule中的Methods。 类型:String 有效值:GET、PUT、HEAD、POST 、DELETE Access-Control-Expose-Headers 服务端CORS配置中的ExposeHeader。 类型:String
  • 请求示例 1 2 3 4 5 6 7 8 OPTIONS / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:02:15 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:7RqP1vjemo6U+Adv9/Y6eGzWrzA= Origin: www.example.com Access-Control-Request-Method: PUT
  • 功能介绍 OPTIONS,称为预请求,是客户端发送给服务端的一种请求,通常被用于检测客户端是否具有对服务端进行操作的权限。只有当预请求成功返回,客户端才开始执行后续的请求。 OBS允许在桶内保存静态的网页资源,在正确的使用下,OBS的桶可以成为网站资源。在这种使用场景下,OBS中的桶作为服务端,需要处理客户端发送的OPTIONS预请求。 要处理OPTIONS,OBS的桶必须已经配置CORS,关于CORS的使用说明,请参见章节 设置桶的CORS配置。
  • 请求消息头 该请求使用的消息头如下表1所示。 表1 OPTIONS请求消息头 消息头名称 描述 是否必选 Origin 预请求指定的跨域请求Origin(通常为域名)。 类型:String 是 Access-Control-Request-Method 实际请求可以带的HTTP方法,可以带多个方法头域。 类型:String 有效值:GET、PUT、HEAD、POST 、DELETE 是 Access-Control-Request-Headers 实际请求可以带的HTTP头域,可以带多个头域。 类型:String 否
  • 响应示例 1 2 3 4 5 HTTP/1.1 204 No Content Server: OBS x-obs-request-id: BF26000001643639F290185BB27F793A x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSLWMRFJfckapW+ktT/+1AnAz7XlNU0b Date: WED, 01 Jul 2015 03:56:41 GMT
  • 请求示例 1 2 3 4 5 6 DELETE /?cors HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 03:56:41 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mKUs/uIPb8BP0ZhvMd4wEy+EbiI=
  • 响应消息元素 在此请求返回的响应消息体中包含的配置元素如下表1描述。 表1 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(表示域名的字符串),长度为[0-20480]个字符,每一个AllowedOrigin可以带最多一个“*”通配符。 类型:String 父节点:CORSRule。 AllowedHeader 配置CORS请求中允许携带的“Access-Control-Request-Headers”头域,长度为[0-20480]个字符。如果一个请求带了“Access-Control-Request-Headers”头域,则只有匹配上AllowedHeader中的配置才认为是一个合法的CORS请求。每一个AllowedHeader可以带最多一个“*”通配符,不可出现空格。 类型:String 父节点:CORSRule。 MaxAgeSeconds 客户端可以缓存的CORS响应时间,以秒为单位。 每个CORSRule可以包含至多一个MaxAgeSeconds。 类型:Integer 父节点:CORSRule。 ExposeHeader CORS响应中带的附加头域,给客户端提供额外的信息,不可出现空格。 类型:String 父节点:CORSRule。
  • 请求示例 1 2 3 4 5 6 GET /?cors HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 03:54:36 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:WJGghTrPQQXRuCx5go1fHyE+Wwg=
  • 响应示例:为桶配置两条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
  • 响应示例 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(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 String 是 参数解释: 按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。也支持设置Content-SHA256头域,其值为消息体256-bit SHA256值经过base64编码后得到的字符串,Content-MD5和Content-SHA256二选一。 类型:示例:n58IG6hfM7vqI4K0vnWpog== 约束限制: 无 取值范围: 无 默认取值: 无
共100000条