华为云用户手册

  • 错误响应消息 如果AccessKey或签名无效,OBS返回403 Forbidden,错误码为AccessDenied。 如果请求的桶不存在,OBS返回404 Not Found,错误码为NoSuchBucket。 如果请求的多段上传任务不存在,OBS返回404 Not Found,错误码为NoSuchUpload。 OBS判断用户DomainId是否具有指定桶的读权限,如果没有权限,则OBS返回403 Forbidden,错误码为AccessDenied。 其他错误已经包含在表2中。
  • 请求示例 1 2 3 4 5 6 GET /object02?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:20:35 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:xkABdSrBPrz5yqzuZdJnK5oL/yU=
  • 请求消息参数 该请求通过请求消息参数指定多段上传任务以及列出的段数量,参数的具体含义如表1所示。 表1 请求消息参数 参数名称 描述 是否必选 uploadId 多段上传任务的id。 类型:String 默认值:无。 是 max-parts 规定在列举已上传段响应中的最大Part数目。 类型:Integer 默认值:1,000。 否 part-number -marker 指定List的起始位置,只有Part Number数目大于该参数的Part会被列出。 类型:Integer 默认值:无。 否 encoding-type 对响应中的Key进行指定类型的编码。如果Key包含xml 1.0标准不支持的控制字符,可通过设置encoding-type对响应中的Key进行编码。 类型:String 默认值:无。 可选值:url。 否
  • 响应消息头 该响应使用的消息头如下表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
  • 响应示例 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中。
  • 功能介绍 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 6 GET /?location HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:30:25 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:1DrmbCV+lhz3zV7uywlj7lrh0MY=
  • 请求示例:不带任何参数列举已初始化的段任务 1 2 3 4 5 6 GET /?uploads HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:51:21 GMT Authorization: OBS UDS IAM STUBTEST000008:XdmZgYQ+ZVy1rjxJ9/KpKq+wrU0=
  • 请求示例:带prefix和delimeter列举已初始化的段任务 例如,用户桶examplebucket中2个段任务,对象名分别为multipart-object001和part2-key02,列举段任务时,设置prefix为“multipart",delimeter设置为object001,列举已初始化的段任务。 GET /?uploads&delimiter=object001&prefix=multipart HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:51:21 GMT Authorization: OBS UDSIAMSTUBTEST000008:XdmZgYQ+ZVy1rjxJ9/KpKq+wrU0=
  • 请求消息参数 该请求可以通过在请求消息中指定参数,查询指定范围的多段上传任务,请求参数说明如表1所示。 表1 请求消息参数 参数名称 描述 是否必选 delimiter 对于名字中包含delimiter的对象的任务,其对象名(如果请求中指定了prefix,则此处的对象名需要去掉prefix)中从首字符至第一个delimiter之间的字符串将作为CommonPrefix在响应中返回。对象名包含CommonPrefix的任务被视为一个分组,作为一条记录在响应中返回,该记录不包含任务的信息,仅用于提示用户该分组下存在多段上传任务。 类型:String 否 prefix 如果请求中指定了prefix,则响应中仅包含对象名以prefix开始的任务信息。 类型:String 否 max-uploads 列举的多段任务的最大条目,取值范围为[1,1000],当超出范围时,按照默认的1000进行处理。 类型:Integer 否 key-marker 列举时返回指定的key-marker之后的多段任务。 类型:String 否 upload-id-marker 只有和key-marker一起使用才有意义, 列举时返回指定的key-marker的upload-id-marker之后的多段任务。 类型:String 否 encoding-type 对响应中的部分元素进行指定类型的编码。如果Delimiter、KeyMarker、Prefix、NextKeyMarker和Key包含xml 1.0标准不支持的控制字符,可通过设置encoding-type对响应中的Delimiter、KeyMarker、Prefix(包括CommonPrefixes中的Prefix)、NextKeyMarker和Key进行编码。 类型:String 可选值:url。 否
  • 响应消息元素 该请求的响应消息中通过消息元素返回多段上传任务,元素的具体意义如表2所示。 表2 响应消息元素 元素名称 描述 ListMultipartUploadsResult 保存List Multipart Upload请求结果的容器。 类型:Container 子节点: Bucket, KeyMarker , UploadIdMarker, NextKeyMarker, NextUploadIdMarker, MaxUploads, Delimiter, Prefix, Upload, CommonPrefixes, IsTruncated。 父节点:None。 Bucket 初始化任务所在的桶名。 类型:String 父节点: ListMultipartUploadsResult。 EncodingType 对响应中的部分元素进行指定类型的编码。如果请求中设置了encoding-type,那响应中的Delimiter、KeyMarker、Prefix(包括CommonPrefixes中的Prefix)、NextKeyMarker和Key会被编码。 类型:String 父节点:ListMultipartUploadsResult。 KeyMarker 列举时的起始对象位置。 类型:String 父节点: ListMultipartUploadsResult。 UploadIdMarker 列举时的起始UploadId位置。 类型:String 父节点: ListMultipartUploadsResult。 NextKeyMarker 如果本次没有返回全部结果,响应请求中将包含NextKeyMarker字段,用于标明接下来请求的KeyMarker值。 类型:String 父节点: ListMultipartUploadsResult。 NextUploadIdMarker 如果本次没有返回全部结果,响应请求中将包含NextUploadIdMarker元素,用于标明接下来请求的UploadMarker值。 类型:String 父节点: ListMultipartUploadsResult。 MaxUploads 返回的最大多段上传任务数目。 类型:Integer 父节点: ListMultipartUploadsResult。 IsTruncated 表明是否本次返回的Multipart Upload结果列表被截断。“true”表示本次没有返回全部结果;“false”表示本次已经返回了全部结果。 类型:Boolean。 父节点: ListMultipartUploadsResult。 Upload 保存Multipart Upload任务信息的容器。 类型:Container 子节点: Key, UploadId, InitiatorOwner, StorageClass, Initiated。 父节点: ListMultipartUploadsResult。 Key 初始化Multipart Upload任务的Object名字。 类型:String 父节点: Upload。 UploadId Multipart Upload任务的ID。 类型:String 父节点: Upload。 Initiator Multipart Upload任务的创建者。 子节点: ID。 类型:Container 父节点: Upload。 ID 创建者的DomainId。 类型:String 父节点: Initiator, Owner。 Owner 段的所有者。 类型:Container 子节点: ID 父节点: Upload。 StorageClass 表明待多段上传的对象存储类型。 类型:String 父节点: Upload。 Initiated Multipart Upload任务的初始化时间。 类型:Date。 父节点: Upload。 ListMultipartUploadsResult.Prefix 请求中带的Prefix。 类型:String 父节点: ListMultipartUploadsResult。 Delimiter 请求中带的Delimiter。 类型:String 父节点: ListMultipartUploadsResult。 CommonPrefixes 请求中带Delimiter参数时,返回消息带CommonPrefixes分组信息。 类型:Container 父节点: ListMultipartUploadsResult。 CommonPrefixes. Prefix CommonPrefixes分组信息中,表明不同的Prefix。 类型:String 父节点: CommonPrefixes。
  • 请求示例 1 2 3 4 5 6 GET /?notification HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 03:16:32 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:r5+2zwPTKwupMg6lkeTUUqPcHfQ=
  • 响应消息元素 在此请求返回的响应消息体中包含的配置元素如下表1描述。 表1 Notification配置元素 名称 描述 NotificationConfiguration 配置桶事件通知的元素,如果此项内容为空,说明通知功能处于关闭状态。 类型:Container 父节点:无 子节点:一个或多个FunctionStageConfiguration FunctionStageConfiguration 配置函数服务的元素。 类型:Container 父节点:NotificationConfiguration 子节点:Id,Filter,FunctionStage,一个或多个Event FunctionStage 函数服务中函数的URN,当OBS检测到桶中发生特定的事件后,将会调用执行该函数。 类型:String 父节点:FunctionStageConfiguration Id 每项事件通知配置的唯一标识,若是用户未指定ID,系统将自动分配一个ID。 类型:String 父节点:FunctionStageConfiguration Filter Object的元素,用以保存过滤对象名的一组规则。 类型:Container 父节点:FunctionStageConfiguration 子节点: Object Object Object的元素,用以保存过滤对象名的一组规则。 类型:Container 父节点:FunctionStageConfiguration FilterRule 定义过滤规则键值对的元素。 类型:Container 父节点:Object 子节点:Name,Value Name 指定规则按对象名前缀或后缀进行过滤。 类型:String 父节点:FilterRule 合法值:prefix或者suffix Value 指定的对象名关键字,用以按照前缀或后缀过滤对象。 类型:String 父节点:FilterRule Event 需要发布通知消息的事件类型。 说明: 在一个FunctionStageConfiguration配置项中可以添加多个事件类型。 类型:String 合法值: 上传对象操作可以取以下值: ObjectCreated:Put ObjectCreated:Post ObjectCreated:Copy ObjectCreated:CompleteMultipartUpload 或者使用通配符支持所有上传操作 ObjectCreated:* 删除对象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated 或者使用通配符支持所有删除操作 ObjectRemoved:* 父节点:FunctionStageConfiguration
  • 响应消息样式 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
  • 响应消息头 该请求使用的消息头如下表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 /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所示。 表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 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: 32AAAQAAEAABAAAQAAEAABAAAQAAEAA BCS +DXV4zZetbTqFehhEcuXywTa/mi3T3 Date: WED, 01 Jul 2015 04:02:19 GMT Content-Length: 0
  • 错误响应消息 此请求可能的特殊错误如下表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中。
  • 请求示例 1 2 3 4 5 6 DELETE /?tagging HTTP/1.1 User-Agent: curl/7.19.7 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Wed, 27 Jun 2018 13:46:58 GMT Authorization: authorization string
  • 响应示例 1 2 3 4 5 HTTP/1.1 204 No Content x-obs-request-id: 0002B7532E0000015BEB2C212E53A17L x-obs-id-2: CqT+86nnOkB+Cv9KZoVgZ28pSgMF+uGQBUC68flvkQeq6CxoCz65wWFMNBpXvea4 Content-Length: 0 Date: Wed, 27 Jun 2018 13:46:58 GMT
  • 响应消息元素 在此请求返回的响应消息体中包含的配置元素如下表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(表示域名的字符串),可以带一个匹配符”*”。每一个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。
  • 请求示例 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=
  • 响应示例 1 2 3 4 5 HTTP/1.1 204 No Content Server: OBS x-obs-request-id: 000001682D993B666808E265A3F6361D x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAAB CS yB46jGSQsu06m1nyIeKxTuJ+H27ooC Date: Tue, 08 Jan 2019 13:14:03 GMT
  • 请求示例 1 2 3 4 5 6 DELETE /examplebucket?encryption HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Tue, 08 Jan 2019 13:18:35 +0000 Authorization: OBS UDSIAMSTUBTEST000001:UT9F2YUgaFu9uFGMmxFj2CBgQHs=
  • 响应示例 1 2 3 4 5 HTTP/1.1 204 No Content Server: OBS x-obs-request-id: BF2600000164363786230E2001DC0807 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSFUG4fEyDRgzUiEY2i71bJndBCy+wUZ Date: WED, 01 Jul 2015 03:44:37 GMT
共100000条