云服务器内容精选

  • 功能说明 OBS客户端支持通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,可将该URL提供给其他用户进行临时访问。在生成URL时,您需要指定URL的有效期来限制访客用户的访问时长。 如果您想授予其他用户对桶或对象临时进行其他操作的权限(例如上传或下载对象),则需要生成带对应请求的URL后(例如使用生成PUT请求的URL上传对象),将该URL提供给其他用户。 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。 不支持通过 CDN加速 后的 域名 生成临时访问URL。
  • 准备访问密钥 OBS通过用户账号中的AK和SK进行签名验证,确保通过授权的账号才能访问指定的OBS资源。获取访问密钥前,请确保访问OBS的 IAM 子用户已开启编程访问,开启方式详见修改或查看IAM用户信息。以下是对AK和SK的解释说明: AK:Access Key ID,接入键标识,用户在 对象存储服务 系统中的接入键标识,一个接入键标识唯一对应一个用户,一个用户可以同时拥有多个接入键标识。对象存储服务系统通过接入键标识识别访问系统的用户。 SK:Secret Access Key,安全接入键,用户在对象存储服务系统中的安全接入键,是用户访问对象存储服务系统的密钥,用户根据安全接入键和请求头域生成鉴权信息。安全接入键和接入键标识一一对应。 访问密钥分永久访问密钥(AK/SK)和临时访问密钥(AK/SK和SecurityToken)两种。每个用户最多可创建两个有效的永久访问密钥。临时访问密钥只在设置的有效期内能够访问OBS,过期后需要重新获取。出于安全性考虑,建议您使用临时访问密钥访问OBS,或使用永久访问密钥访问OBS时,定期更新您的访问密钥(AK/SK)。两种密钥的获取方式如下。 永久访问密钥: 登录管理控制台。 单击页面右上角的用户名,并选择“我的凭证”。 在“我的凭证”页面,单击左侧导航栏的“访问密钥”。 在“访问密钥”页面,单击“新增访问密钥”。 在弹出的“新增访问密钥”对话框中,输入登录密码和对应验证码。 用户如果未绑定邮箱和手机,则只需输入登录密码。 用户如果同时绑定了邮箱和手机,可以选择其中一种方式进行验证。 单击“确定”。 在弹出的“下载确认”提示框中,单击“确定”后,密钥会直接保存到浏览器默认的下载文件夹中。 打开下载下来的“credentials.csv”文件即可获取到访问密钥(AK和SK)。 每个用户最多可创建两个有效的访问密钥。 为防止访问密钥泄露,建议您将其保存到安全的位置。如果用户在此提示框中单击“取消”,则不会下载密钥,后续也将无法重新下载。如果需要使用访问密钥,可以重新创建新的访问密钥。 临时访问密钥: 临时AK/SK和SecurityToken是系统颁发给用户的临时访问令牌,通过接口设置有效期,范围为15分钟至24小时,过期后需要重新获取。临时AK/SK和SecurityToken遵循权限最小化原则。使用临时AK/SK鉴权时,临时AK/SK和SecurityToken必须同时使用。 获取临时访问密钥的接口请参考获取临时AK/SK和securitytoken。 OBS属于全局级服务,所以在获取临时访问密钥时,需要设置Token的使用范围取值为domain,表示获取的Token可以作用于全局服务,全局服务不区分项目或者区域。
  • 检查连通性 配置完成后,您可以通过如下方式检查连通性,确认配置是否无误。 Windows操作系统 obsutil ls -s macOS/Linux操作系统 ./obsutil ls -s 根据命令回显结果,检查配置结果: 如果返回结果中包含“Bucket number :”,表明配置正确。 如果返回结果中包含“Http status [403]”,表明访问密钥配置有误。 如果返回结果中包含“A connection attempt failed”,表明无法连接OBS服务,请检查网络环境是否正常。 如果返回结果中包含“Error: cloud_url [url] is not in well format”,表明访问域名有误,请检查配置文件中域名是否正常。 如果返回结果中包含“Http status [403]”,也可能是没有获取桶列表的权限,需要视具体场景进一步确认根因。
  • 参数说明 参数 约束 描述 folder_url 必选 本地文件夹路径。 bucket 必选 桶名。 key 可选 待同步下载的对象名前缀。 规则如下: 如果该值为空,则将folder_url指定的文件夹下的所有内容与整个桶的内容保持一致; 如果该值不为空,则将folder_url指定的文件夹下的所有内容与桶内以该值作为对象名前缀的内容保持一致。 说明: 如果该值不为空且不以“/”结尾,则工具会自动为该值末尾加上“/”作为对象名前缀。 请参考同步下载示例理解该参数的使用方式。 tempFileDir 附加参数,可选 同步下载时保存临时文件的文件夹,默认为配置文件中的defaultTempFileDir。 说明: 由于分段下载时生成的临时文件会保存在该目录,请确保运行obsutil的用户对该路径有写权限。 该路径的可用空间需要大于待下载对象的大小。 dryRun 附加参数,可选 测试模式运行,不执行实际的下载操作。 vlength 附加参数,可选 下载完成后,验证本地文件大小是否与桶中对象的大小一致。 vmd5 附加参数,可选 下载完成后,验证本地文件的MD5值是否与桶中对象的MD5值一致。 说明: 桶中对象必须包含元数据x-obs-meta-md5chksum,否则会忽略MD5值校验。 注意: 如果您的业务涉及加密场景,请勿使用该参数。 p 附加参数,可选 每个分段下载任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段下载任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待下载的对象小于该阈值,则使用直接下载模式;否则使用分段下载模式。 直接下载模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 ps 附加参数,可选 每个分段下载任务的段大小,单位:字节,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段下载任务会产生唯一对应的断点记录文件并保存至该文件夹的down子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 j 附加参数,批量下载时可选 同步下载时的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,批量下载时可选 不包含源对象的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待下载的对象名匹配该参数,则跳过该对象的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个exclude参数,如-exclude=*.xxx -exclude=*.xxx include 附加参数,批量下载时可选 包含源对象的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待下载的对象名不匹配exclude,则判断待下载的对象名是否匹配该参数,如果匹配则下载该对象,否则跳过该文件的下载。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个include参数,如-include=*.xxx -include=*.xxx timeRange 附加参数,可选 同步下载对象时的时间段匹配模式,仅下载最后修改时间在该时间段内的对象。 该匹配模式优先级低于对象名匹配模式:exclude和include,优先执行对象名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 该匹配模式仅适用于对象名非“/”结尾的对象。 mf 附加参数,可选 设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对对象名以“/”结尾的对象也生效。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果和警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:sync_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"sync_failed_report_时间_TaskId.txt"及日志路径下的日志文件; config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 运行示例 以Windows操作系统为例,运行obsutil sync obs://bucket-test/temp d:\ temp,同步下载对象。 obsutil sync obs://bucket-test/temp d:\temp Start at 2024-09-30 08:53:22.327072 +0000 UTC Parallel: 5 Jobs: 5 Threshold: 50.00MB PartSize: auto VerifyLength: false VerifyMd5: false CheckpointDir: xxxx Task id: 3066a4b0-4d21-4929-bb84-4829c32cbd0f OutputDir: xxxx TempFileDir: xxxx [======================================================] 100.00% tps:17.86 155.59 KB/s 7.20MB/7.20MB 0s Succeed count: 6 Failed count: 0 Succeed bytes: xxxx Metrics [max cost:153 ms, min cost:129 ms, average cost:92.00 ms, average tps:17.86, transfered size: 7.20MB] Task id: 3066a4b0-4d21-4929-bb84-4829c32cbd0f 更多运行示例,请参见同步下载示例。
  • 命令结构 Windows操作系统 obsutil sync obs://bucket[/key] folder_url [-tempFileDir=xxx] [-dryRun] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil sync obs://bucket[/key] folder_url [-tempFileDir=xxx] [-dryRun] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 功能说明 将OBS源桶指定路径下的所有对象同步到本地目标路径,使两边内容保持一致。这里的增量同步有两层含义:1)增量,依次比较源对象和目标文件,只下载存在变化的源对象;2)同步,命令执行完成后,保证OBS指定源桶指定路径是本地目标路径的子集,即OBS源桶指定路径下的所有对象均能在本地目标路径下找到对应文件。 同步下载时,请确保OBS桶中的源对象不发生变化,否则可能产生同步失败或者数据不一致的问题。 如果待下载对象的存储类型为cold,必须首先恢复待下载对象,否则无法下载成功。 同步下载每个对象时会对比本地对应路径的文件,仅在文件不存在,或者文件大小与对象大小不一致,或者文件的最后修改时间早于对象的最后修改时间时进行下载。 同步下载不支持单文件同步下载,仅支持同步下载文件夹。
  • 返回结果 表2 返回结果 参数名称 参数类型 描述 originPolicy str 参数解释: Policy未经过base64编码之前的值,仅用于校验。示例如下: {"expiration":"2023-09-12T12:52:59Z","conditions":[{"content-type":"text/plain"},{"bucket":"examplebucket"},{"key":"example/objectname"},]}" 默认取值: 无 policy str 参数解释: 表单中的policy,已经base64编码之后的值。示例如下: eyJleHBpcmF0aW9uIjoiMjAyMy0wOS0xMlQxMjo1Mjo1OVoiLCJjb25kaXRpb25zIjpbeyJjb250ZW50LXR5cGUiOiJ0ZXh0L3BsYWluIn0seyJidWNrZXQiOiJleGFtcGxlYnVja2V0In0seyJrZXkiOiJleGFtcGxlL29iamVjdG5hbWUifSxdfQ== 默认取值: 无 signature str 参数解释: 表单中的signature。示例如下: g0jQr4v9VWd1Q2FOFDG6LGfV9Cw= 默认取值: 无
  • 请求参数 表1 请求参数列表 参数名称 参数类型 是否必选 描述 bucketName str 可选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 objectKey str 可选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 expires int 可选 参数解释: 表单上传鉴权的过期时间。 取值范围: 大于等于0的整型数,单位:秒。 默认取值: 300 formParams dict 可选 参数解释: 除key,policy,signature外,表单上传时的其他参数 取值范围: acl cache-control content-type content-disposition content-encoding expires 默认取值: 无
  • 代码样例 此用例用于生成带授权信息的表单上传参数policy和signature。 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 from obs import ObsClient import os import traceback # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险 # 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak = os.getenv("AccessKeyID") sk = os.getenv("SecretAccessKey") # 【可选】如果使用临时AKSK和SecurityToken访问OBS,则同样推荐通过环境变量获取 # security_token = os.getenv("SecurityToken") # server填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写 server = "https://obs.cn-north-4.myhuaweicloud.com" # 创建obsClient实例 # 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过security_token参数指定securityToken值 obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server) try: bucketName = "examplebucket" objectKey = "objectname" # 设置表单上传请求有效期,单位:秒,此处以3600秒为例 expires = 3600 # 除key,policy,signature外,表单上传时的其他参数,此处设置acl为私有、content-type为text/plain formParams = {'x-obs-acl': 'private', 'content-type': 'text/plain'} # 生成带授权信息的表单上传参数 resp = obsClient.createPostSignature(bucketName, objectKey, expires, formParams) print('originPolicy:', resp.originPolicy) print('policy:', resp.policy) print('signature:', resp.signature) except: print(traceback.format_exc())
  • 准备访问密钥 OBS通过用户账号中的AK和SK进行签名验证,确保通过授权的账号才能访问指定的OBS资源。获取访问密钥前,请确保访问OBS的IAM子用户已开启编程访问,开启方式详见修改或查看IAM用户信息。以下是对AK和SK的解释说明: AK:Access Key ID,接入键标识,用户在对象存储服务系统中的接入键标识,一个接入键标识唯一对应一个用户,一个用户可以同时拥有多个接入键标识。对象存储服务系统通过接入键标识识别访问系统的用户。 SK:Secret Access Key,安全接入键,用户在对象存储服务系统中的安全接入键,是用户访问对象存储服务系统的密钥,用户根据安全接入键和请求头域生成鉴权信息。安全接入键和接入键标识一一对应。 访问密钥分永久访问密钥(AK/SK)和临时访问密钥(AK/SK和SecurityToken)两种。每个用户最多可创建两个有效的永久访问密钥。临时访问密钥只在设置的有效期内能够访问OBS,过期后需要重新获取。出于安全性考虑,建议您使用临时访问密钥访问OBS,或使用永久访问密钥访问OBS时,定期更新您的访问密钥(AK/SK)。两种密钥的获取方式如下。 永久访问密钥: 登录管理控制台。 单击页面右上角的用户名,并选择“我的凭证”。 在“我的凭证”页面,单击左侧导航栏的“访问密钥”。 在“访问密钥”页面,单击“新增访问密钥”。 在弹出的“新增访问密钥”对话框中,输入登录密码和对应验证码。 用户如果未绑定邮箱和手机,则只需输入登录密码。 用户如果同时绑定了邮箱和手机,可以选择其中一种方式进行验证。 单击“确定”。 在弹出的“下载确认”提示框中,单击“确定”后,密钥会直接保存到浏览器默认的下载文件夹中。 打开下载下来的“credentials.csv”文件既可获取到访问密钥(AK和SK)。 每个用户最多可创建两个有效的访问密钥。 为防止访问密钥泄露,建议您将其保存到安全的位置。如果用户在此提示框中单击“取消”,则不会下载密钥,后续也将无法重新下载。如果需要使用访问密钥,可以重新创建新的访问密钥。 临时访问密钥: 临时AK/SK和SecurityToken是系统颁发给用户的临时访问令牌,通过接口设置有效期,范围为15分钟至24小时,过期后需要重新获取。临时AK/SK和SecurityToken遵循权限最小化原则。使用临时AK/SK鉴权时,临时AK/SK和SecurityToken必须同时使用。 获取临时访问密钥的接口请参考获取临时AK/SK和securitytoken。 OBS属于全局级服务,所以在获取临时访问密钥时,需要设置Token的使用范围取值为domain,表示获取的Token可以作用于全局服务,全局服务不区分项目或者区域。
  • 准备开发环境 从Python官网下载并安装合适的Python版本。 推荐使用的Python 2.x版本:Python 2.7.x版本。 推荐使用的Python 3.x版本:Python 3.6、3.7、3.8、3.9、3.10、3.11版本。 不推荐使用python3.5及以下版本,如要使用需要运行命令pip install secrets,安装安全随机数模块,python2.7版本可用python2-secrets代替。 从PyCharm官网下载并安装最新社区版本。 运行命令 pip install pycryptodome==3.10.1,安装加密库。
  • 初始化OBS客户端 向OBS发送任一HTTP/HTTPS请求之前,必须先创建一个ObsClient实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 引入模块 from obs import ObsClient # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 # 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak = os.getenv("AccessKeyID") sk = os.getenv("SecretAccessKey") # 【可选】如果使用临时AKSK和SecurityToken访问OBS,则同样推荐通过环境变量获取 security_token = os.getenv("SecurityToken") # server填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 server = "https://obs.cn-north-4.myhuaweicloud.com" # 创建obsClient实例 # 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过security_token参数指定securityToken值 obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server) # 使用访问OBS # 关闭obsClient obsClient.close() 更多关于OBS客户端初始化的内容请参考“初始化”章节。 日志配置详见日志初始化
  • 创建AK、SK OBS通过用户账户中的AK和SK进行签名验证,确保通过授权的账户才能访问指定的OBS资源。以下是对AK和SK的解释说明: AK:Access Key ID,接入键标识,用户在对象存储服务系统中的接入键标识,一个接入键标识唯一对应一个用户,一个用户可以同时拥有多个接入键标识。对象存储服务系统通过接入键标识识别访问系统的用户。 SK:Secret Access Key,安全接入键,用户在对象存储服务系统中的安全接入键,是用户访问对象存储服务系统的密钥,用户根据安全接入键和请求头域生成鉴权信息。安全接入键和接入键标识一一对应。 访问密钥分永久访问密钥(AK/SK)和临时访问密钥(AK/SK和SecurityToken)两种。每个用户最多可创建两个有效的永久访问密钥。临时访问密钥只在设置的有效期内能够访问OBS,过期后需要重新获取。出于安全性考虑,建议您使用临时访问密钥访问OBS,或使用永久访问密钥访问OBS时,定期更新您的访问密钥(AK/SK)。两种密钥的获取方式如下所示。 永久访问密钥: 登录管理控制台。 单击页面右上角的用户名,并选择“我的凭证”。 在“我的凭证”页面,单击左侧导航栏的“访问密钥”。 在“访问密钥”页面,单击“新增访问密钥”。 每个用户最多可创建两个有效的访问密钥。 在弹出的“新增访问密钥”对话框中,输入描述内容(建议),单击“确定”。 (可选)在弹出的“身份验证”对话框中,选择合适的验证方式进行验证,单击“确定”。 在弹出的“创建成功”提示框中,单击“立即下载”后,密钥会直接保存到浏览器默认的下载文件夹中。 打开下载下来的“credentials.csv”文件即可获取到访问密钥(AK和SK)。 在密钥文件中,Access Key ID列对应的值即AK,Secret Access Key列对应的值即SK。 为防止访问密钥泄露,建议您将其保存到安全的位置。如果用户在此提示框中单击“取消”,则不会下载密钥,后续也将无法重新下载。如果需要使用访问密钥,可以重新创建新的访问密钥。
  • 返回结果 表9 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表10 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表11 GetResult.body GetResult.body类型 说明 PutContentResponse 参数解释: 上传对象响应结果,参考PutContentResponse。 表12 PutContentResponse 参数名称 参数类型 描述 storageClass str 参数解释: 对象的存储类型。 取值范围: 当对象存储类型是标准存储时,该值为空。 可选择的存储类型参见StorageClass。 默认取值: 无 versionId str 参数解释: 对象的版本号。如果桶的多版本状态为开启,则会返回对象的版本号。 取值范围: 长度为32的字符串。 默认取值: 无 etag str 参数解释: 对象的etag值,即base64编码的128位MD5摘要。etag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时etag为A,下载对象时etag为B,则说明对象内容发生了变化。etag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,都有唯一的etag。 约束限制: 当对象是服务端加密的对象时,etag值不是对象的MD5值。 取值范围: 长度为32的字符串。 默认取值: 无 sseKms str 参数解释: SSE-KMS方式的算法。 取值范围: kms,即以SSE-KMS方式加密对象。 默认取值: 无 sseKmsKey str 参数解释: SSE-KMS加密方式下使用的KMS主密钥的ID值。 取值范围: 有效值支持两种格式: regionID:domainID(账号ID):key/key_id key_id 其中: regionID是使用密钥所属region的ID,可在地区和终端节点页面获取; domainID是使用密钥所属账号的账号ID,获取方法参见如何获取账号ID和用户ID?(Python SDK); key_id是从 数据加密 服务创建的密钥ID,获取方法请参见查看密钥。 默认取值: 如果用户没有提供该头域,那么默认的主密钥将会被使用。 如果默认主密钥不存在,将默认创建并使用。 sseC str 参数解释: SSE-C方式的算法。 取值范围: AES256。 默认取值: 无 sseCKeyMd5 str 参数解释: SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 约束限制: 由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ== 默认取值: 无 objectUrl str 参数解释: 对象的全路径。 默认取值: 无