华为云用户手册

  • 请求示例:修改对象元数据 对象object已存在元数据x-obs-meta-test:testmeta,且x-obs-storage-class为WARM,将对象object的元数据x-obs-meta-test修改为newmeta,x-obs-storage-class修改为COLD。 1 2 3 4 5 6 7 8 9 PUT /object?metadata HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 14:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:newmeta x-obs-storage-class:COLD
  • 响应示例:添加对象元数据 1 2 3 4 5 6 7 8 9 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3E4BB5905C41B6E65B6 Accept-Ranges: bytes x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D Date: WED, 01 Jul 2015 04:19:21 GMT Content-Length: 0 x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:meta
  • 响应示例:修改对象元数据 1 2 3 4 5 6 7 8 9 10 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3E4BB5905C41B6E65B6 Accept-Ranges: bytes x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D Date: WED, 01 Jul 2015 04:19:21 GMT Content-Length: 0 x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:newmeta x-obs-storage-class:COLD
  • 请求示例:上传指定存储类型的对象 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:15:07 GMT x-obs-storage-class: WARM Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uFVJhp/dJqj/CJIVLrSZ0gpw3ng= 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: BB7800000164846A2112F98BF970AA7E ETag: "d41d8cd98f00b204e9800998ecf8427e" x-obs-id-2: a39E0UgAIAABAAAQAAEAABAAAQAAEAABCTPOUJu5XlNyU32fvKjM/92MQZK2gtoB Date: WED, 01 Jul 2015 04:15:07 GMT Content-Length: 0
  • 响应示例 :上传时配置对象级WORM保护策略 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
  • 请求示例:上传时配置对象级WORM保护策略 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 x-obs-object-lock-mode:COMPLIANCE x-obs-object-lock-retain-until-date:2022-09-24T16:10:25Z Expect: 100-continue [1024 Byte data content]
  • 响应消息头 该请求的响应消息使用公共消息头,具体请参考表1。 除公共响应消息头之外,还可能使用如表2中的消息头。 表2 附加响应消息头 消息头名称 描述 x-obs-version-id 对象的版本号。如果桶的多版本状态为开启,则会返回对象的版本号。 类型:String 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== x-obs-storage-class 对象为非标准存储对象时,会返回此头域,可取值为:WARM或者COLD、DEEP_ARCHIVE 类型:String
  • 请求示例:桶开启多版本时上传对象 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]
  • 请求示例:上传对象 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]
  • 响应示例:桶开启多版本时上传对象 1 2 3 4 5 6 7 8 HTTP/1.1 200 OK Server: OBS x-obs-request-id: DCD2FC9CAB78000001439A51DB2B2577 ETag: "d41d8cd98f00b204e9800998ecf8427e" X-OBS-ID-2: GcVgfeOJHx8JZHTHrRqkPsbKdB583fYbr3RBbHT6mMrBstReVILBZbMAdLiBYy1l Date: WED, 01 Jul 2015 04:17:12 GMT x-obs-version-id: AAABQ4q2M9_c0vycq3gAAAAAVURTRkha Content-Length: 0
  • 请求示例:上传对象时携带MD5 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:50 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uFVJhp/dJqj/CJIVLrSZ0gpw3ng= Content-Length: 10 Content-MD5: 6Afx/PgtEy+bsBjKZzihnw== Expect: 100-continue 1234567890
  • 响应示例:上传对象时携带MD5 1 2 3 4 5 6 7 HTTP/1.1 200 OK Server: OBS x-obs-request-id: BB7800000164B165971F91D82217D105 X-OBS-ID-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSEKhBpS4BB3dSMNqMtuNxQDD9XvOw5h ETag: "1072e1b96b47d7ec859710068aa70d57" Date: WED, 01 Jul 2015 04:17:50 GMT Content-Length: 0
  • 请求示例:在URL中携带签名并上传对象 PUT /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: */* Content-Length: 1024 [1024 Byte data content]
  • 请求示例:上传对象的同时设置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]
  • 请求示例:上传时配置website实现下载对象重定向 当桶设置了Website配置,您可以在上传对象时进行以下设置,设置后用户在下载对象时会重定向 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-website-redirect-location: http://www.example.com/ Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uFVJhp/dJqj/CJIVLrSZ0gpw3ng= Content-Length: 10240 Expect: 100-continue [1024 Byte data content]
  • 响应示例:在URL中携带签名并上传对象 1 2 3 4 5 6 7 8 HTTP/1.1 200 OK Server: OBS x-obs-request-id: DCD2FC9CAB78000001439A51DB2B2577 x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTmxB5ufMj/7/GzP8TFwTbp33u0xhn2Z ETag: "1072e1b96b47d7ec859710068aa70d57" Date: Fri, 27 Jul 2018 10:52:31 GMT x-obs-version-id: AAABQ4q2M9_c0vycq3gAAAAAVURTRkha Content-Length: 0
  • 响应示例:上传时配置website实现下载对象重定向 1 2 3 4 5 6 7 8 HTTP/1.1 200 OK Server: OBS x-obs-request-id: DCD2FC9CAB78000001439A51DB2B2577 x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTmxB5ufMj/7/GzP8TFwTbp33u0xhn2Z ETag: "1072e1b96b47d7ec859710068aa70d57" Date: WED, 01 Jul 2015 04:17:12 GMT x-obs-version-id: AAABQ4q2M9_c0vycq3gAAAAAVURTRkha Content-Length: 0
  • 响应示例:上传对象 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: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSReVRNuas0knI+Y96iXrZA7BLUgj06Z Date: WED, 01 Jul 2015 04:13:55 GMT Content-Length: 0
  • 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。
  • 功能介绍 用户在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。
  • 与POST上传的区别 PUT上传中参数通过请求头域传递;POST上传则作为消息体中的表单域传递。 PUT上传需在URL中指定对象名;POST上传提交的URL为桶域名,无需指定对象名。两者的请求行分别为: PUT /ObjectName HTTP/1.1 POST / HTTP/1.1 使用PUT上传请求时,消息体中如果使用POST格式,则上传到OBS中的对象会以表单形式呈现。 关于POST上传的更多详细信息,请参考POST上传。
  • 请求消息元素 在此请求中,需要在请求的消息体中配置桶的清单。清单的配置信息以XML格式上传。具体的配置元素如表2。 表2 桶的清单配置元素 名称 描述 是否必选 InventoryConfiguration 清单配置。 类型:Container 父节点:无 子节点:Id、IsEnabled、Filter、Destination、Schedule、IncludedObjectVersions以及OptionalFields 是 Id 清单配置的id,必须和请求参数中的清单配置id一致。 类型:String 规格:最长64字节 默认值:无 有效字符:"a-z"、"A-Z"、"0-9"、"-"、"_"和"." 父节点:InventoryConfiguration 是 IsEnabled 规则是否启用,如果设置为true,则生成清单,反之不生成。 类型:Boolean 有效值:true、false 父节点:InventoryConfiguration 是 Filter 清单过滤器配置,清单只包含符合过滤器规则的对象(只支持按对象名前缀进行过滤),如果没有配置过滤器,则包含所有对象。 类型:Container 父节点:InventoryConfiguration 子节点:Prefix 否 Prefix 前缀过滤条件,清单文件中只生成以此前缀开头的对象列表。 类型:String 父节点:Filter 否 Schedule 清单文件的生成周期。 类型:Container 父节点:InventoryConfiguration 子节点:Frequency 是 Frequency 清单文件的生成周期,只支持按天和按周生成清单,第一次配置完桶清单,任务会在一个小时内启动,之后每隔一个周期启动一次。 类型:String 父节点:Schedule 有效值:Daily、Weekly 是 Destination 清单的目标配置。 类型:Container 父节点:InventoryConfiguration 是 Format 生成的清单文件的格式,现只支持CSV格式。 类型:String 父节点:Destination 有效值:CSV 是 Bucket 存放清单文件的目标桶的桶名。 类型:String 父节点:Destination 是 Prefix 生成的清单文件对象名会以此前缀开头,如果不配置前缀,则生成的清单文件对象名默认以BucketInventory开头。 类型:String 父节点:Destination 否 IncludedObjectVersions 清单文件中包含对象的多版本配置。 如果设置为All,清单会包含对象所有的版本,清单中会增加版本相关的字段:VersionId、IsLatest、和DeleteMarker。 如果设置为Current,则清单文件中只会列出当前版本信息,不会出现版本相关字段。 类型:String 父节点:InventoryConfiguration 有效值:All、Current 是 OptionalFields 在此选项中可以添加一些额外的对象元数据字段,生成的清单文件中会包含OptionalFields中配置的字段。 类型:Container 父节点:InventoryConfiguration 子节点:Field 否 Field 可选字段类型,OptionalFields可以包含多个Field元素。 类型:String 父节点:OptionalFields 有效值:Size、LastModifiedDate、StorageClass、ETag、IsMultipartUploaded、ReplicationStatus、EncryptionStatus。 否
  • 错误响应消息 除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因,如表3。 表3 设置桶清单错误码列表 错误码 描述 HTTP状态码 MalformedXML 清单的XML配置格式错误。 400 Bad Request InvalidArgument 无效参数。 400 Bad Request InventoryCountOverLimit 配置清单数量超过最大限制。 400 Bad Request PrefixExistInclusionRelationship 清单配置中的前缀存在包含关系。 400 Bad Request
  • 功能介绍 OBS使用PUT操作为一个桶配置清单规则,每个桶最多可以配置10条清单规则,有关更多桶清单的介绍和使用限制,请参考《对象存储服务用户指南》的桶清单章节。 要使用此操作,需确保执行者有PutBucketInventoryConfiguration操作的权限 。桶拥有者默认具有此权限,并且可以将此权限授予其他人。 有关权限控制的更多信息请参考《对象存储服务权限配置指南》的OBS权限控制概述章节。
  • 响应示例 1 2 3 4 5 6 HTTP/1.1 200 OK Server: OBS x-obs-request-id: 000001682C8545B0680893425D60AB83 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSIGTuRtBfo7lpHSt0ZknhdDHmllwd/p Date: Tue, 08 Jan 2019 08:12:38 GMT Content-Length: 0
  • 请求消息参数 该请求需要在消息中指定参数,表明这是多段上传,参数意义如表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
  • 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功能影响。
共100000条