云服务器内容精选

  • WORM 如果桶的WORM开关是开启的,则可以在初始化多段任务时配置对象级WORM保护策略。您可以通过携带头域x-obs-object-lock-mode和x-obs-object-lock-retain-until-date在初始化多段任务的同时指定最终合并对象的保护策略,如果您不携带这些头域,但配置了桶级默认WORM策略,则合并后的对象会自动应用默认策略。您还可以在合并后配置或修改对象级WORM保护策略。 与使用PUT和POST方法上传对象不同,多段上传对x-obs-object-lock-retain-until-date头域的约束只需要您提供不晚于初始化时间的日期,而无需晚于合并多段任务的时间。应用桶级默认WORM策略时,保护的起始时间从合并时间开始计算,即合并时间+桶级默认保护期限。在合并前,多段上传任务可以被取消,不会受到WORM功能影响。
  • 请求示例:初始化段 1 2 3 4 POST /objectkey?uploads HTTP/1.1 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 05:14:52 GMT Authorization: OBS AKIAIOSFODNN7EXAMPLE:VGhpcyBtZXNzYWdlIHNpZ25lZGGieSRlbHZpbmc=
  • 请求消息参数 该请求需要在消息中指定参数,表明这是多段上传,参数意义如表1所示。 表1 请求消息参数 参数名称 描述 是否必选 uploads 表明这是多段上传任务。 类型:String 说明: 该参数为空字符串。 如果请求未设置此参数,则为普通POST上传任务。 是 encoding-type 对响应中的Key进行指定类型的编码。如果Key包含xml 1.0标准不支持的控制字符,可通过设置encoding-type对响应中的Key进行编码。 类型:String 可选值:url 否
  • 响应消息元素 该请求响应消息中通过返回消息元素,返回本次多段上传任务的多段上传任务号、桶名、对象名,供后续上传段、合并段使用,元素的具体意义如表4所示。 表4 响应消息元素 元素名称 描述 InitiateMultipartUploadResult 描述多段上传任务的容器。 类型:XML Bucket 多段上传对象所在桶的桶名。 类型:String Key 多段上传对象的key。 类型:String UploadId 多段上传id,后面进行多段上传时,利用这个id指定多段上传任务。 类型:String EncodingType 多段上传对象Key的编码类型。如果请求中设置了encoding-type,那响应中的Key会被编码。 类型:String
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表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==
  • 功能介绍 使用多段上传特性时,用户必须首先调用创建多段上传任务接口创建任务,系统会给用户返回一个全局唯一的多段上传任务号,作为任务标识。后续用户可以根据这个标识发起相关的请求,如:上传段、合并段、列举段等。创建多段上传任务不影响已有的同名对象;同一个对象可以同时存在多个多段上传任务;每个多段上传任务在初始化时可以附加消息头信息,包括acl、用户自定义元数据和通用的HTTP消息头contentType、contentEncoding等,这些附加的消息头信息将先记录在多段上传任务元数据中。 该操作支持服务端加密功能。
  • 请求示例:初始化段的同时携带ACL 1 2 3 4 5 POST /objectkey?uploads HTTP/1.1 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 05:15:43 GMT x-obs-grant-write-acp:ID=52f24s3593as5730ea4f722483579ai7,ID=a93fcas852f24s3596ea8366794f7224 Authorization: OBS AKIAIOSFODNN7EXAMPLE:VGhpcyBtZXNzYWdlIHNpZ25lZGGieSRlbHZpbmc=
  • 响应消息元素 该请求的响应通过消息元素返回已上传了的段信息,元素的具体含义如表2所示。 表2 响应消息元素 响应字段名称 描述 ListPartsResult 保存List Part请求结果的容器。 类型:Container 子节点: Bucket, Key, UploadId, PartNumberMarker,NextPartNumberMarker, MaxParts, IsTruncated, Part。 父节点:无。 Bucket Bucket名称。 类型:String 父节点:ListPartsResult。 EncodingType 对象Key的编码类型。如果请求中设置了encoding-type,那响应中的Key会被编码。 类型:String 父节点:ListPartsResult。 Key Object名称。 类型:String 父节点:ListPartsResult。 UploadId Upload任务ID。 类型:String 父节点:ListPartsResult。 Initiator Upload任务的创建者。 类型:Container 子节点:ID。 父节点:ListPartsResult。 Owner 和Initiator相同。 类型:Container 子节点: ID。 父节点: ListPartsResult。 ID 创建者的DomainId。 类型:String 父节点: Initiator、Owner。 StorageClass 存储类型。 类型:String 有效值: STANDARD | WARM | COLD 父节点:ListPartsResult。 PartNumberMarker 本次List结果的Part Number起始位置。 类型:Integer 父节点:ListPartsResult。 NextPartNumberMarker 如果本次没有返回全部结果,响应请求中将包含NextPartNumberMarker元素,用于标明接下来请求的PartNumberMarker值。 类型:Integer 父节点:ListPartsResult。 MaxParts 返回请求中最大的Part数目。 类型:Integer 父节点:ListPartsResult。 IsTruncated 标明是否本次返回的List Part结果列表被截断。“true”表示本次没有返回全部结果;“false”表示本次已经返回了全部结果。 类型:Boolean。 父节点:ListPartsResult。 Part 保存Part信息的容器。 类型:String 子节点:PartNumber, LastModified, ETag, Size。 父节点:ListPartsResult。 (PartNumber表示Part的数字。) PartNumber 已上传Part的编号。 类型:Integer 父节点:ListPartsResult.Part。 LastModified Part上传的时间。 类型:Date 父节点:ListPartsResult.part。 ETag 已上传段内容的ETag,是段内容的唯一标识,用于段合并时校验数据一致性。 类型:String 父节点:ListPartsResult.Part Size 已上传Part大小。 类型:Integer 父节点:ListPartsResult.Part。
  • 请求消息参数 该请求通过请求消息参数指定多段上传任务以及列出的段数量,参数的具体含义如表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。 否
  • 错误响应消息 如果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=
  • 错误响应消息 如果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中。
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表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==
  • 请求示例 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