计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

POST上传

更新时间:2024-09-29 GMT+08:00

功能介绍

上传对象操作是指在指定的桶内增加一个对象,执行该操作需要用户拥有桶的写权限。

说明:

同一个桶中存储的对象名是唯一的。

在桶未开启多版本的情况下,如果在指定的桶内已经有相同的对象键值的对象,用户上传的新对象会覆盖原来的对象;为了确保数据在传输过程中没有遭到破坏,用户可以在表单域中加入Content-MD5参数。在这种情况下,OBS收到上传的对象后,会对对象进行MD5校验,如果不一致则返回出错信息。用户还可以在上传对象时指定x-obs-acl参数,设置对象的权限控制策略。

用户除了可以用PUT直接上传对象外,还可以使用POST上传对象。

单次上传对象大小范围是[0, 5GB],如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。

该操作支持服务端加密功能。

与PUT上传的区别

PUT上传中参数通过请求头域传递;POST上传则作为消息体中的表单域传递。

PUT上传需在URL中指定对象名;POST上传提交的URL为桶域名,无需指定对象名。两者的请求行分别为:

PUT /ObjectName HTTP/1.1
POST / HTTP/1.1

关于PUT上传的更多详细信息,请参考PUT上传

多版本

如果桶的多版本状态是开启的,系统会自动为对象生成一个唯一的版本号;如果桶的多版本状态是暂停的,则系统生成的对象版本号为null,并由响应报头x-obs-version-id返回该版本号。关于桶的多版本状态,参见设置桶的多版本状态

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
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
POST / HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
User-Agent: browser_data
Accept: file_types
Accept-Language: Regions
Accept-Encoding: encoding
Accept-Charset: character_set
Keep-Alive: 300 
Connection: keep-alive 
Content-Type: multipart/form-data; boundary=9431149156168 
Content-Length: length


--9431149156168 
Content-Disposition: form-data; name="key" 

acl 
--9431149156168 
Content-Disposition: form-data; name="success_action_redirect"
 
success_redirect 
--9431149156168 
Content-Disposition: form-data; name="content-Type" 

content_type 
--9431149156168 
Content-Disposition: form-data; name="x-obs-meta-uuid" 

uuid 
--9431149156168 
Content-Disposition: form-data; name="x-obs-meta-tag" 

metadata 
--9431149156168 
Content-Disposition: form-data; name="AccessKeyId" 

access-key-id 
--9431149156168 
Content-Disposition: form-data; name="policy" 

encoded_policy 
--9431149156168 
Content-Disposition: form-data; name="signature" 

signature= 
--9431149156168 
Content-Disposition: form-data; name="file"; filename="MyFilename" 
Content-Type: image/jpeg 

file_content 
--9431149156168 
Content-Disposition: form-data; name="submit" 

Upload to OBS 
--9431149156168--

请求消息参数

该请求消息中不使用参数。

请求消息头

该请求使用公共的消息头,具体请参见表3

如果想要获取CORS配置信息,则需要使用的消息头如下表1所示。

表1 获取CORS配置的请求消息头

消息头名称

消息头类型

是否必选

描述

Origin

String

参数解释:

预请求指定的跨域请求Origin(通常为域名)。

约束限制:

取值范围:

符合http协议的该头域的取值。

默认取值:

Access-Control-Request-Headers

String

参数解释:

实际请求可以带的HTTP头域,可以带多个头域。

约束限制:

取值范围:

符合http协议的该头域的取值。

默认取值:

说明:

配置后如果仍然提示跨域,请参考为什么配置了跨域资源共享(CORS)仍然报错处理。

请求消息元素

该请求消息的消息元素以表单形式组织,表单字段的具体含义如表2所示。

表2 请求消息表单元素

元素名称

元素类型

是否必选

描述

file

二进制或文本类型

参数解释:

上传的对象内容。文件名与文件路径均会被忽略,不会作为对象名称。对象名称是另一参数key的值。

约束限制

  • 此参数必须为最后一个参数,否则此参数之后的参数会被丢弃。
  • 一个请求中只能含有一个file参数。

取值范围:

默认取值:

key

String

参数解释:

通过此请求创建的对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。

例如,您对象的访问地址为examplebucket.obs.ap-southeast-1.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。

约束限制:

参见对象概述

取值范围:

长度大于0且不超过1024的字符串。

默认取值:

AccessKeyId

String

是,有条件

参数解释:

用来指明请求发起者的访问密钥。

约束限制

如果该请求包括安全策略参数policy或signature时,则必须包括此参数。

取值范围:

用户的AK。

默认取值:

policy

String

是,有条件

参数解释:

该请求的安全策略描述。

约束限制

当Bucket提供了AccessKeyId(或signature)表单域时,则必须包括此参数。

取值范围:

参见基于浏览器上传的表单中携带签名章节中policy格式。

默认取值:

signature

String

是,有条件

参数解释:

根据StringToSign计算出的签名字符串。

约束限制

当Bucket提供了AccessKeyId(或policy)表单域时,则必须包括此参数。

取值范围:

默认取值:

token

String

参数解释:

用来统一指明请求发起者的访问密钥、请求签名和请求的安全策略。

约束限制:

token的优先级高于单独指定的访问密钥、请求签名和请求的安全策略。

示例:

HTML中:<input type="text" name="token" value="ak:signature:policy" />

取值范围:

满足ak:signature:policy格式的值。

默认取值:

x-obs-acl

String

参数解释:

创建对象时,可以加上此消息头设置对象的权限控制策略,使用的策略为预定义的常用策略。

示例:

POLICY中:{"acl": "public-read" },

HTML中:<input type="text" name="acl" value="public-read" />

约束限制:

取值范围:

  • private
  • public-read
  • public-read-write
  • public-read-delivered
  • public-read-write-delivered

各策略详细说明见ACL章节的“使用头域设置ACL”。

默认取值:

private

x-obs-grant-read

String

参数解释:

创建对象时,使用此头域授权domain下所有用户有读对象和获取对象元数据的权限。

示例:

POLICY中:{"grant-read": "id=domainId1" },

HTML中:<input type="text" name="grant-read" value="id=domainId1" />

约束限制

如果授权给多个租户,需要通过“,”分割。

取值范围:

domainId需要为正确的租户ID,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

默认取值:

x-obs-grant-read-acp

String

参数解释:

创建对象时,使用此头域授权domain下所有用户有获取对象ACL的权限。

示例:

POLICY中:{"grant-read-acp": "id=domainId1" },

HTML中:<input type="text" name="grant-read-acp" value="id=domainId1" />

约束限制:

取值范围:

domainId需要为正确的租户ID,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

默认取值:

x-obs-grant-write-acp

String

参数解释:

创建对象时,使用此头域授权domain下所有用户有写对象ACL的权限。

示例:

POLICY中:{"grant-write-acp": "id=domainId1" },

HTML中:<input type="text" name="grant-write-acp" value="id=domainId1" />

约束限制:

取值范围:

domainId需要为正确的租户ID,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

默认取值:

x-obs-grant-full-control

String

参数解释:

创建对象时,使用此头域授权domain下所有用户有读对象、获取对象元数据、获取对象ACL、写对象ACL的权限。

示例:

POLICY中:{"grant-full-control": "id=domainId1" },

HTML中:<input type="text" name="grant-full-control" value="id=domainId1" />

约束限制:

取值范围:

domainId需要为正确的租户ID,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

默认取值:

x-obs-storage-class

String

参数解释:

创建对象时,可以加上此头域设置对象的存储类型。

示例:

POLICY中:{"storage-class": "STANDARD" },

HTML中:<input type="text" name="x-obs-storage-class" value="STANDARD" />

约束限制:

设置该参数的值时请注意大小写敏感。

取值范围:

  • STANDARD
  • WARM
  • COLD
  • DEEP_ARCHIVE

默认取值:

如果未设置此头域,则以桶的默认存储类型作为对象的存储类型。

Cache-Control

String

参数解释:

该参数为HTTP标准消息头,OBS将该参数记录下来,当用户下载此对象或Head Object时,在响应消息头中携带该参数。

约束限制:

取值范围:

参见http协议的Cache-Control头域。

默认取值:

Content-Type

String

参数解释:

该参数为HTTP标准消息头,OBS将该参数记录下来,当用户下载此对象或Head Object时,在响应消息头中携带该参数。

示例:

POLICY中:["starts-with", "$Content-Type", "text/"],

HTML中:<input type="text" name="content-type" value="text/plain" />

约束限制:

取值范围:

参见http协议的Content-Type头域。

默认取值:

Content-Disposition

String

参数解释:

该参数为HTTP标准消息头,OBS将该参数记录下来,当用户下载此对象或Head Object时,在响应消息头中携带该参数。

约束限制:

取值范围:

参见http协议的Content-Disposition头域。

默认取值:

Content-Encoding

String

参数解释:

该参数为HTTP标准消息头,OBS将该参数记录下来,当用户下载此对象或Head Object时,在响应消息头中携带该参数。

约束限制:

取值范围:

参见http协议的Content-Encoding头域。

默认取值:

Expires

String

参数解释:

该参数为HTTP标准消息头,OBS将该参数记录下来,当用户下载此对象或Head Object时,在响应消息头中携带该参数。

约束限制:

取值范围:

参见http协议的Expires头域。

默认取值:

success_action_redirect

String

参数解释:

用于指定当此次请求操作成功响应后的重定向的地址。

  • 如果此参数值有效且操作成功,响应码为303,Location头域由此参数以及桶名、对象名、对象的ETag组成。
  • 如果此参数值无效,则OBS忽略此参数的作用,Location头域为对象地址,响应码根据操作成功或失败正常返回。

示例:

POLICY中:{"success_action_redirect": "http://123458.com"},

HTML中:<input type="text" name="success_action_redirect" value="http://123458.com" />

约束限制:

需要http和https开头。

取值范围:

URL

默认取值:

x-obs-meta-*

String

参数解释:

创建对象时,可以在HTTP请求中加入“x-obs-meta-”消息头或以“x-obs-meta-”开头的消息头,用来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回消息的消息头中出现。更多说明详见对象自定义元数据介绍

示例:

POLICY中:{" x-obs-meta-test ": " test metadata " },

HTML中:<input type="text" name=" x-obs-meta-test " value=" test metadata " />

约束限制:

取值范围:

详见对象自定义元数据介绍

默认取值:

x-obs-persistent-headers

String

参数解释:

创建对象时,可以在HTTP请求中加入“x-obs-persistent-headers”消息头,用来加入一个或多个自定义的响应头,当用户获取此对象或查询此对象元数据时,加入的自定义响应头将会在返回消息的头域中出现。

约束限制

  • 通过该方式指定的自定义响应头不能以“x-obs-”为前缀,比如可以指定“key1”,但是不能指定“x-obs-key1”。
  • 不能指定http标准头,例如host/content-md5/origin/range/Content-Disposition等。
  • 此头域和自定义元数据总长度不能超过8KB。
  • 如果传入相同key,将value以“,”拼接后放入同一个key中返回。
  • 如果value解码后存在非US-ASCII值或不可识别字符,则服务端只会作为字符串处理并通过“?UTF-8?B?<(str)>?=”包装,而不会做解码,例如key1:abbc,会返回key1: =?UTF-8?B?abbc?=。
  • value不支持包含的字符“空格”、“=”、“,”、“;”、“:”、".",如果需要包含,请使用URL编码或者Base64编码。
  • 格式:x-obs-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)....

    说明:其中key1/key2等为自定义header,如果含有非ASCII码或不可识别字符,可以采用URL编码或者Base64编码,服务端只会作为字符串处理,不会做解码。value1/value2等为对应自定义header的值,base64_encode指做base64编码,即将自定义header和对应值的base64编码作为一个key-value对用“:”连接,然后用“,”将所有的key-value对连接起来,放在x-obs-persistent-headers这个header中即可,服务端会对上传的value做解码处理。

    示例:

    POLICY中:{"x-obs-persistent-headers": "key1:dmFsdWUx,key2:dmFsdWUy" },

    HTML中:<input type="text" name="x-obs-persistent-headers" value="key1:dmFsdWUx,key2:dmFsdWUy" />

    下载此对象或获取此对象元数据时:返回两个头域分别为“key1:value1”与“key2:value2”。

取值范围:

默认取值:

success_action_status

String

参数解释:

这个参数指定成功响应的状态码。

示例:

POLICY中:["starts-with", "$success_action_status", ""],

HTML中:<input type="text" name="success_action_status" value="200" />

约束限制:

  • 如果此参数值被设定为200或204,OBS响应消息中body为空。
  • 如果此参数值被设定为201,则OBS响应消息中包含一个XML文档描述此次请求的响应。
  • 当请求不携带此参数或参数无效时,OBS响应码为204。

取值范围:

  • 200
  • 201
  • 204

默认取值:

x-obs-website-redirect-location

String

参数解释:

当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL,OBS将这个值从头域中取出,保存在对象的元数据中。

约束限制

必须以“/”、“http://”或“https://”开头,长度不超过2K。

取值范围:

默认取值:

x-obs-server-side-encryption

String

否。当使用SSE-KMS方式时,必选。

参数解释:

使用该头域表示服务端加密是SSE-KMS方式。

示例:x-obs-server-side-encryption:kms

约束限制:

取值范围:

  • kms
  • AES256

默认取值:

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

否。当使用SSE-C方式时,必选。

参数解释:

该头域表示加密使用的算法。

示例:x-obs-server-side-encryption-customer-algorithm:AES256

约束限制:

  • 仅在SSE-C加密方式下使用该头域。
  • 需要和x-obs-server-side-encryption-customer-key, x-obs-server-side-encryption-customer-key-MD5一起使用。

取值范围:

AES256

默认取值:

x-obs-server-side-encryption-customer-key

String

否。当使用SSE-C方式时,必选。

参数解释:

该头域表示加密使用的密钥。该密钥用于加密对象。

示例:x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

约束限制:

  • 仅在SSE-C加密方式下使用该头域。
  • 该头域由256-bit的密钥经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key-MD5一起使用。

取值范围:

默认取值:

x-obs-server-side-encryption-customer-key-MD5

String

否。当使用SSE-C方式时,必选。

参数解释:

该头域表示加密使用的密钥的MD5值。MD5值用于验证密钥传输过程中没有出错。

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

约束限制:

  • 仅在SSE-C加密方式下使用该头域。
  • 该头域由密钥的128-bit MD5值经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key一起使用。

取值范围:

密钥的MD5值。

默认取值:

x-obs-expires

Integer

参数解释:

表示对象的过期时间,单位是天。过期之后对象会被自动删除。(从对象最后修改时间开始计算)

此字段对于每个对象支持上传时配置,也支持后期通过修改元数据接口修改。

示例:x-obs-expires:3

约束限制:

设置的天数计算出的过期时间不能早于当前时间,如10天前上传的对象,不能设置小于10的值。

取值范围:

大于0的整数值。

默认取值:

x-obs-object-lock-mode

String

否, 携带x-obs-object-lock-retain-until-date时必带。

参数解释:

要应用于此对象的WORM模式。

示例:x-obs-object-lock-mode:COMPLIANCE

约束限制:

目前仅支持COMPLIANCE,即合规模式。

该参数需要和x-obs-object-lock-retain-until-date一同使用。

取值范围:

COMPLIANCE

默认取值:

x-obs-object-lock-retain-until-date

String

否,携带x-obs-object-lock-mode时必带。

参数解释:

此对象的WORM策略过期的截止时间。

示例:x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

约束限制

格式要求为UTC时间,并符合ISO 8601标准。如:2015-07-01T04:11:15Z

该参数需要和x-obs-object-lock-mode一同使用。

取值范围:

需要大于当前时间。

默认取值:

响应消息样式

1
2
3
4
5
HTTP/1.1 status_code
Content-Type: application/xml 
Location: location
Date: date
ETag: etag

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

除公共响应消息头之外,还可能使用如表3中的消息头。

表3 附加响应消息头

消息头名称

消息头类型

描述

x-obs-version-id

String

参数解释:

对象的版本号。

约束限制

  • 如果桶的多版本状态为开启,则会返回对象的版本号。
  • 如果桶的多版本状态为暂停,则会返回null。

取值范围:

服务端自动生成。

默认取值:

Access-Control-Allow-Origin

String

参数解释:

当桶设置了CORS配置,如果请求的Origin满足服务端的CORS配置,则在响应中包含这个Origin。

约束限制:

取值范围:

符合CORS协议的取值范围。

默认取值:

Access-Control-Allow-Headers

String

参数解释:

当桶设置了CORS配置,如果请求的headers满足服务端的CORS配置,则在响应中包含这个headers。

约束限制:

取值范围:

符合CORS协议的取值范围。

默认取值:

Access-Control-Max-Age

Integer

参数解释:

当桶设置了CORS配置,服务端CORS配置中的MaxAgeSeconds。

约束限制:

取值范围:

大于等于0的整型数,单位:秒。

默认取值:

3000

Access-Control-Allow-Methods

String

参数解释:

当桶设置了CORS配置,如果请求的Access-Control-Request-Method满足服务端的CORS配置,则在响应中包含这条rule中的Methods。

约束限制:

取值范围:

  • GET
  • PUT
  • HEAD
  • POST
  • DELETE

默认取值:

Access-Control-Expose-Headers

String

参数解释:

桶CORS规则中的ExposeHeader。ExposeHeader是指CORS规则允许响应中可返回的附加头域,给客户端提供额外的信息。默认情况下浏览器只能访问以下头域:Content-Length、Content-Type,如果需要访问其他头域,需要在附加头域中配置。

约束限制:

不支持*、&、:、<、空格以及中文字符。

取值范围:

默认取值:

x-obs-server-side-encryption

String

参数解释:

该头域表示服务端的加密方式。

示例:x-obs-server-side-encryption:kms

约束限制:

如果服务端加密是SSE-KMS方式,响应包含该头域。

取值范围:

  • kms
  • AES256

默认取值:

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值。

默认取值:

响应消息元素

该请求的响应消息中不带消息元素。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例:普通POST上传

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
POST / HTTP/1.1
Date: WED, 01 Jul 2015 04:15:23 GMT
Host: examplebucket.obs.region.myhuaweicloud.com
Content-Type: multipart/form-data; boundary=7db143f50da2
Content-Length: 2424
Origin: www.example.com
Access-Control-Request-Headers:acc_header_1

--7db143f50da2
Content-Disposition: form-data; name="key"

object01
--7db143f50da2
Content-Disposition: form-data; name="acl"

public-read
--7db143f50da2 
Content-Disposition: form-data; name="content-type"

text/plain
--7db143f50da2
Content-Disposition: form-data; name="expires"

WED, 01 Jul 2015 04:16:15 GMT
--7db143f50da2
Content-Disposition: form-data; name="AccessKeyId"

14RZT432N80TGDF2Y2G2
--7db143f50da2
Content-Disposition: form-data; name="policy"

ew0KICAiZXhaaXJhdGlvbiI6ICIyMDE1LTA3LTAxVDEyOjAwOjAwLjAwMFoiLA0KICAiY29uZGl0aW9ucyI6IFsNCiAgICB7ImJ1Y2tldCI6ICJleG1hcGxlYnVja2V0IiB9LA0KICAgIHsiYWNsIjogInB1YmxpYy1yZWFkIiB9LA0KICAgIHsiRXhaaXJlcyI6ICIxMDAwIiB9LA0KICAgIFsiZXEiLCAiJGtleSIsICJvYmplY3QwMSJdLA0KICAgIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJ0ZXh0LyJdLA0KICBdDQp9DQo=
--7db143f50da2
Content-Disposition: form-data; name="signature"

Vk6rwO0Nq09BLhvNSIYwSJTRQ+k=
--7db143f50da2
Content-Disposition: form-data; name="x-obs-persistent-headers"
 
test:dmFsdWUx
--7db143f50da2
Content-Disposition: form-data; name="x-obs-grant-read"
 
id=52f24s3593as5730ea4f722483579xxx
--7db143f50da2
Content-Disposition: form-data; name="x-obs-server-side-encryption"
 
kms
--7db143f50da2
Content-Disposition: form-data; name="x-obs-website-redirect-location"
 
http://www.example.com/
--7db143f50da2
Content-Disposition: form-data; name="file"; filename="C:\Testtools\UpLoadFiles\object\1024Bytes.txt"
Content-Type: text/plain

01234567890
--7db143f50da2
Content-Disposition: form-data; name="submit"

Upload
--7db143f50da2--

响应示例:普通POST上传

桶配置cors后,响应会包含Access-Control-*的信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 204 No Content
x-obs-request-id: 90E2BA00C26C00000133B442A90063FD
x-obs-id-2: OTBFMkJBMDBDMjZDMDAwMDAxMzNCNDQyQTkwMDYzRkRBQUFBQUFBQWJiYmJiYmJi
Access-Control-Allow-Origin: www.example.com
Access-Control-Allow-Methods: POST,GET,HEAD,PUT
Access-Control-Allow-Headers: acc_header_01
Access-Control-Max-Age: 100
Access-Control-Expose-Headers: exp_header_01
Content-Type: text/xml
Location: http://examplebucket.obs.region.myhuaweicloud.com/object01
Date: WED, 01 Jul 2015 04:15:23 GMT
ETag: "ab7abb0da4bca5323ab6119bb5dcd296"

请求示例:带x-obs-acl头域并指定存储类型

带x-obs-acl头域并指定存储类型,重定向头域,上传对象

编码前,policy的内容为

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "expiration":"2018-07-17T04:54:35Z",
    "conditions":[
        {
            "content-type":"text/plain"
        },
        {
            "x-obs-storage-class":"WARM"
        },
        {
            "success_action_redirect":"http://www.example.com"
        },
        {
            "x-obs-acl":"public-read"
        },
        [
            "starts-with",
            "$bucket",
            ""
        ],
        [
            "starts-with",
            "$key",
            ""
        ]
    ]
}

请求示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
POST / HTTP/1.1
Host: examplebucket.obs.region.myhuaweicloud.com
Accept-Encoding: identity
Content-Length: 947
Content-Type: multipart/form-data; boundary=9431149156168
User-Agent: OBS/Test

--9431149156168
Content-Disposition: form-data; name="x-obs-acl"

public-read
--9431149156168
Content-Disposition: form-data; name="AccessKeyId"

H4IPJX0TQTHTHEBQQCEC
--9431149156168
Content-Disposition: form-data; name="key"

my-obs-object-key-demo
--9431149156168
Content-Disposition: form-data; name="signature"

WNwv8P1ZiWdqPQqjXeLmAfzPDAI=
--9431149156168
Content-Disposition: form-data; name="policy"

eyJleHBpcmF0aW9uIjoiMjAxOC0wNy0xN1QwODozNDoyM1oiLCAiY29uZGl0aW9ucyI6W3siY29udGVudC10eXBlIjoidGV4dC9wbGFpbiJ9LHsieC1vYnMtYWNsIjoicHVibGljLXJlYWQifSxbInN0YXJ0cy13aXRoIiwgIiRidWNrZXQiLCAiIl0sWyJzdGFydHMtd2l0aCIsICIka2V5IiwgIiJdXX0=
--9431149156168
Content-Disposition: form-data; name="content-type"

text/plain
--9431149156168
Content-Disposition: form-data; name="file"; filename="myfile"
Content-Type: text/plain

c2c6cd0f-898e-11e8-aab6-e567c91fb541
52b8e8a0-8481-4696-96f3-910635215a78

--9431149156168--

响应示例:带x-obs-acl头域并指定存储类型

1
2
3
4
5
6
7
HTTP/1.1 204 No Content
Server: OBS
Location: http://examplebucket.obs.region.myhuaweicloud.com/my-obs-object-key-demo
ETag: "17a83fc8d431273405bd266114b7e034"
x-obs-request-id: 5DEB00000164A728A7C7F4E032214CFA
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSwj2PcBE0YcoLHUDO7GSj+rVByzjflA
Date: Tue, 17 Jul 2018 07:33:36 GMT

请求示例:使用token进行鉴权

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
POST / HTTP/1.1
Content-Type:multipart/form-data; boundary=9431149156168
Content-Length: 634
Host: examplebucket.obs.region.myhuaweicloud.com
 
--9431149156168
Content-Disposition: form-data; name="key"
obj01
 
--9431149156168
Content-Disposition: form-data; name="token"
UDSIAMSTUBTEST002538:XsVcTzR2/A284oE4VH9qPndGcuE=:eyJjb25kaXRpb25zIjogW3siYnVja2V0IjogInRlc3QzMDAzMDU4NzE2NjI2ODkzNjcuMTIifSwgeyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24veG1sIn0sIFsiZXEiLCAiJGtleSIsICJvYmoudHh0Il1dLCAiZXhwaXJhdGlvbiI6ICIyMDIyLTA5LTA5VDEyOjA5OjI3WiJ9
 
--9431149156168
Content-Disposition: form-data; name="file"; filename="myfile"
Content-Type: text/plain
01234567890
 
--9431149156168--
Content-Disposition: form-data; name="submit"
Upload to OBS

响应示例:使用token进行鉴权

1
2
3
4
5
6
7
HTTP/1.1 204 No Content
Server: OBS
Location: http://examplebucket.obs.region.myhuaweicloud.com/my-obs-object-key-demo
ETag: "7eda50a430fed940023acb9c4c6a2fff"
x-obs-request-id: 000001832010443D80F30B649B969C47
x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCTj0yO9KJd5In+i9pzTgCDVG9vMnk7O/
Date: Fri,09Sep 2022 02: 24:40 GMT

请求示例:设置对象过期时间

POST / HTTP/1.1 
Date: WED, 01 Jul 2015 04:15:23 GMT 
Host: examplebucket.obs.cn-north-4..com 
Content-Type: multipart/form-data; boundary=148828969260233905620870
Content-Length: 1639 
Origin: www.example.com 
Access-Control-Request-Headers:acc_header_1 
 
--148828969260233905620870 
Content-Disposition: form-data; name="key" 
 
object01
--148828969260233905620870
Content-Disposition: form-data; name="ObsAccessKeyId"
 
55445349414d5354554254455354303030303033
--148828969260233905620870
Content-Disposition: form-data; name="signature"
 
396246666f6f42793872792f7a3958524f6c44334e4e69763950553d--7db143f50da2 
--148828969260233905620870
Content-Disposition: form-data; name="policy" 
 
65794a6c65484270636d463061573975496a6f694d6a41794d7930774e6930784e565178...
--148828969260233905620870
Content-Disposition: form-data; name="x-obs-expires"
 
4
--148828969260233905620870
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain 
 
01234567890
--148828969260233905620870
Content-Disposition: form-data; name="submit" 
 
Upload 
--148828969260233905620870--

响应示例:设置对象过期时间

 
HTTP/1.1 204 No Content 
Server: OBS 
Date: Thu, 15 Jun 2023 12:39:03 GMT
Connection: keep-alive
Location: http://examplebucket.obs.cn-north-4..com/my-obs-object-key-demo 
x-obs-expiration: expiry-date="Tue, 20 Jun 2023 00:00:00 GMT"
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF11049553064911000FC30D
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSwj2PcBE0YcoLHUDO7GSj+rVByzjflA 
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT

请求示例:指定状态码

指定成功响应的状态码为200

POST /srcbucket HTTP/1.1
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Postman-Token: 667dcc44-1c48-41ba-9e41-9f87d8975089
Host: obs.cn-north-4..com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------285613759795901770404350
Content-Length: 1134
 
----------------------------285613759795901770404350
Content-Disposition: form-data; name="key"
 
obj
----------------------------285613759795901770404350
Content-Disposition: form-data; name="ObsAccessKeyId"
 
XXXXXXXXXXXXXXX000003
----------------------------285613759795901770404350
Content-Disposition: form-data; name="signature"
 
9rc4bVhDPQ7eHtw17hWtYxLnBWU=
----------------------------285613759795901770404350
Content-Disposition: form-data; name="policy"
 
eyJleHBpcmF0aW9uIjoiMjAyMy0wNi0xNVQxNDoxMTozNFoiLCAiY29uZGl0aW9ucyI6W3siYnVja2V0Ijoic3JjYnVja2V0MiJ9LHsic3VjY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAwIn0seyJjb250ZW50LXR5cGUiOiJ0ZXh0L3BsYWluIn0seyJrZXkiOiIzMzMifSxdfQ==
----------------------------285613759795901770404350
Content-Disposition: form-data; name="success_action_status"
 
200
----------------------------285613759795901770404350
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
 
 
----------------------------285613759795901770404350
Content-Disposition: form-data; name="submit"
 
Upload to OBS
----------------------------285613759795901770404350--

响应示例:指定状态码

指定成功响应的状态码为200,响应消息

HTTP/1.1 200 OK
Server: OBS
Date: Thu, 15 Jun 2023 13:12:51 GMT
Content-Length: 0
Connection: keep-alive
Location: http://obs.cn-north-4..com/srcbucket/obj
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF2FF55F5306426E000FE366
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCScDjcXgZ7oMYSVnZnk4+HrClVwLVPTi
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT

请求示例:上传时配置对象级WORM保护策略

POST /srcbucket HTTP/1.1
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Postman-Token: 4c2f4c7e-2e0b-46c0-b1a7-4a5da560b6a1
Host: obs.cn-north-4..com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------940435396775653808840608
Content-Length: 1409
 
----------------------------940435396775653808840608
Content-Disposition: form-data; name="key"
 
obj
----------------------------940435396775653808840608
Content-Disposition: form-data; name="ObsAccessKeyId"
 
XXXXXXXXXXXXXXX000003
----------------------------940435396775653808840608
Content-Disposition: form-data; name="signature"
 
X/7QiyMYUvxUWk0R5fToeTcgMMU=
----------------------------940435396775653808840608
Content-Disposition: form-data; name="policy"
 
eyJleHBpcmF0aW9uIjoiMjAyMy0wNi0xNVQxNDoyMjo1MVoiLCAiY29uZGl0aW9ucyI6W3sieC1vYnMtb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGUiOiJUaHUsIDIwIEp1biAyMDIzIDEzOjEyOjUxIEdNVCJ9LHsieC1vYnMtb2JqZWN0LWxvY2stbW9kZSI6IkNPTVBMSUFOQ0UifSx7ImJ1Y2tldCI6InNyY2J1Y2tldDIifSx7ImNvbnRlbnQtdHlwZSI6InRleHQvcGxhaW4ifSx7ImtleSI6IjMzMyJ9LF19
----------------------------940435396775653808840608
Content-Disposition: form-data; name="x-obs-object-lock-mode"
 
COMPLIANCE
----------------------------940435396775653808840608
Content-Disposition: form-data; name="x-obs-object-lock-retain-until-date"
 
Thu, 20 Jun 2023 13:12:51 GMT
----------------------------940435396775653808840608
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
 
 
----------------------------940435396775653808840608
Content-Disposition: form-data; name="submit"
 
Upload to OBS
----------------------------940435396775653808840608--

响应示例:上传时配置对象级WORM保护策略

HTTP/1.1 204 No Content
Server: OBS
Date: Thu, 15 Jun 2023 13:24:03 GMT
Connection: keep-alive
Location: http://obs.cn-north-4..com/srcbucket/obj
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF3A36EE5306427D000FEE0A
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS/5pj0p0hAQcDVI3B6E5y167zy4eAQv
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容