华为云用户手册

  • 功能说明 通过分段上传任务的ID,列举指定桶中已上传的段。 您可以列出特定多段上传任务或所有正在进行的多段上传任务的分段。列举已上传的段操作将返回您已为特定多段上传任务而上传的段信息。对于每个列举已上传的段请求,OBS将返回有关特定多段上传任务的分段信息,最多为1000个分段。如果多段上传中的段超过1000个,您必须发送一系列列举已上传的段请求以检索所有段。请注意,返回的分段列表不包括已合并的分段。
  • 接口约束 您必须是桶拥有者或拥有列举已上传的段的权限,才能列举已上传的段。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:object:ListMultipartUploadParts权限,如果使用桶策略则需授予ListMultipartUploadParts权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 仅使用返回的列表进行验证。发送完成多段上传请求时,您不应使用此列表的结果。但是,当上传段和OBS返回的相应的ETag值时,将保留您自己的指定段编号的列表。
  • 请求参数 表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的字符串。 默认取值: 无 说明: 对象链接地址格式为:https://桶名. 域名 /文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 uploadId str 必选 参数解释: 分段上传任务的ID,例如:000001648453845DBB78F2340DD460D8 取值范围: 长度大于0且不超过32的字符串。 默认取值: 无 maxParts int 可选 参数解释: 列举已上传段的返回结果最大段数目,即分页时每一页中段数目。 约束限制: 如果该参数超出1000时,则按照默认的1000进行处理。 取值范围: [1,1000] 默认取值: 1000 partNumberMarker int 可选 参数解释: 列举已上传段的起始位置。 约束限制: 只有PartNumber数目大于该参数的Part会被列出 默认取值: 无 extensionHeaders dict 可选 参数解释: 接口的拓展头域。 取值范围: 参考自定义头域。 默认取值: 无 encoding_type str 可选 参数解释: 用于指定对响应中的Key 进行指定类型的编码。如果Key 包含xml 1.0标准不支持的控制字符,可通过设置该参数对响应中的Key 进行编码。 取值范围: 可选值为url。 默认取值: 无,不设置则不编码。
  • 接口约束 您必须是桶拥有者或拥有复制段的权限,才能复制段。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 拷贝段的结果不能仅根据HTTP返回头域中的status_code来判断请求是否成功,头域中status_code返回200时表示服务端已经收到请求,且开始处理拷贝段请求。拷贝是否成功会在响应消息的body中,只有body体中有ETag标签才表示成功,否则表示拷贝失败。
  • 请求参数 表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的字符串。 默认取值: 无 说明: 对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 partNumber int 必选 参数解释: 段号。 取值范围: [1,10000] 默认取值: 无 uploadId str 必选 参数解释: 分段上传任务的ID,例如:000001648453845DBB78F2340DD460D8 取值范围: 长度为32的字符串。 默认取值: 无 copySource str 必选 参数解释: 指定源桶、源对象和源对象版本号(可为空)的参数,格式:源桶名/源对象名?versionId=源对象版本号。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 默认取值: 无 copySourceRange str 可选 参数解释: 指定复制源对象的范围。例如:0-999,即对象的第1个字节到1000字节。 取值范围: 取值区间:[0,对象长度-1],格式:x-y,即对象的第x+1字节到第y+1字节。 约束限制: 如果range的最大长度超出对象长度-1,仍旧取对象长度-1。 默认取值: 无 destSseHeader SseCHeader 或 SseKmsHeader 可选 参数解释: 服务端加密头域,用于加密目标对象。详见SseCHeader或SseKmsHeader sourceSseHeader SseCHeader 可选 参数解释: 服务端解密头域,用于解密源对象。详见SseCHeader extensionHeaders dict 可选 参数解释: 接口的拓展头域。 取值范围: 参考自定义头域。 默认取值: 无 表2 SseCHeader 参数名称 参数类型 是否必选 描述 encryption str 必选 参数解释: 以SSE-C方式加密对象。 取值范围: AES256,即高级加密标准(Advanced Encryption Standard,AES)。 默认取值: 无 key str 必选 参数解释: SSE-C方式下加密的密钥,与加密方式对应,如encryption=‘AES256’,密钥就是由AES256加密算法得到的密钥。 取值范围: 长度为32字符串。 默认取值: 无 表3 SseKmsHeader 参数名称 参数类型 是否必选 描述 encryption str 必选 参数解释: 以SSE-KMS方式加密对象。 取值范围: 可选值:kms,即选择SSE-KMS方式加密对象。 默认取值: 无 key str 可选 参数解释: SSE-KMS方式下加密的主密钥。 取值范围: 支持两种格式的密钥描述方式: regionID:domainID(租户ID):key/key_id key_id 其中: regionID是使用密钥所属region的ID,可在地区和终端节点页面获取; domainID是使用密钥所属账号的账号ID,获取方法参见如何获取账号ID和用户ID?(Python SDK); key_id是从 数据加密 服务创建的密钥ID,获取方法请参见查看密钥。 默认取值: 如果用户没有提供该头域,那么默认的主密钥将会被使用。 如果默认主密钥不存在,将默认创建并使用。
  • 返回结果 表4 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表5 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表6 GetResult.body GetResult.body类型 说明 CopyPartResponse 参数解释: 复制段响应结果。详见CopyPartResponse。 表7 CopyPartResponse 参数名称 参数类型 描述 etag str 参数解释: 段的base64编码的128位MD5摘要。ETag是段内容的唯一标识,可以通过该值识别段内容是否有变化。 取值范围: 长度为32的字符串。 默认取值: 无 lastModified str 参数解释: 对象的最近一次修改时间。 约束限制: 日期格式为GMT的格式。 例如:Wed, 25 Mar 2020 02:39:52 GMT。 默认取值: 无 sseKms str 参数解释: 表示服务端加密是SSE-KMS方式。对象使用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,即高级加密标准(Advanced Encryption Standard,AES)。 默认取值: 无 sseCKeyMd5 str 参数解释: SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 约束限制: 由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ== 默认取值: 无
  • 功能说明 初始化分段上传任务后,通过分段上传任务的ID,复制段到指定桶中。 多段上传任务创建后,用户可以通过指定多段上传任务号,为特定的任务上传段。添加段的方式还包括调用段拷贝接口。允许用户将已上传对象的一部分或全部拷贝为段。 将源对象object拷贝为一个段part1,如果在拷贝操作之前part1已经存在,拷贝操作执行之后,旧的段数据part1会被新拷贝的段数据覆盖。拷贝成功后,只能列举到最新的段part1,旧的段数据将会被删除。因此在使用拷贝段接口时请确保目标段不存在或者已无价值,避免因拷贝段导致数据误删除。拷贝过程中源对象object无任何变化。
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 CreateWorkflowResponse 参数名称 参数类型 描述 graphName str 参数解释: 工作流名称 默认取值: 无 graphUrn str 参数解释: 工作流的URN 默认取值: 无 createdAt str 参数解释: 工作流的创建时间 默认取值: 无
  • 请求参数 表1 请求参数列表 参数名称 是否必选 参数类型 描述 graphName 是 str 参数解释: 工作流名称 约束限制: 名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 默认取值: 无 templateName 是 str 参数解释: 工作流模板的名称 约束限制: 名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 默认取值: 无 description 否 str 参数解释: 工作流的描述 约束限制: 长度最小为0,最长为256,可以是数字、大小写字母以及英文的逗号,句号,冒号,中划线,下划线,空格 默认取值: 无 agency 是 str 参数解释: 委托名,用于OBS服务能够访问函数服务 约束限制: agency必须是赋予OBS服务有函数服务访问权限。 默认取值: 无 parameters 否 Array Input Json结构体 结构体说明 参数解释: 工作流中用户可修改参数列表 取值范围: 详见结构体说明
  • 返回结果 表1 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表2 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无
  • 上传加密段 上传加密段继承自普通 OBS Client 的上传段接口,详细参数可参考分段上传-上传段(Python SDK) 方法定义 CryptoClient.initiateEncryptedMultipartUpload(bucketName, objectKey, partNumber, uploadId, crypto_cipher, *args, **kwargs) 接口参数 表5 请求参数列表 参数名称 参数类型 是否必选 描述 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的字符串。 默认取值: 无 说明: 对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 partNumber int 必选 参数解释: 段号。 取值范围: [1,10000] 默认取值: 无 uploadId str 必选 参数解释: 分段上传任务的ID。任务ID可以通过初始化分段上传任务生成。例如:000001648453845DBB78F2340DD460D8。 约束限制: 长度为32的字符串。 默认取值: 无 crypto_cipher OBSCipher 必选 参数解释: 调用 cipher_generator.new() 方法所生成的 OBSCipher 取值范围: cipher_generator.new() ,cipher_generator为初始化时的cipher_generator参数。 示例:cipher = ctr_client.cipher_generator.new(""),ctr_client为加密客户端。 默认取值: 无
  • 初始化 CryptoCipher OBS Python SDK 提供两种 CryptoCipher。您可根据使用场景自行选择。 CtrRSACipherGenerator 需要提供一个 RSA 公钥或 RSA 私钥,用以加密随机生产的数据密钥。 方法定义 CtrRSACipherGenerator(master_crypto_key_path, master_key_info=None, need_sha256=False) 接口参数 表1 CtrRSACipherGenerator 参数名称 参数类型 是否必选 描述 master_crypto_key_path str 必选 参数解释: RSA 密钥文件的路径。 默认取值: 无 master_key_info str 可选 参数解释: 密钥信息,该信息会存至对象的自定义元数据中, 帮助您区分不同crypto_key,需您自行维护 master_key_info 与 crypto_key 的映射关系。 默认取值: 无 need_sha256 bool 可选 参数解释: 是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。 说明: 为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。 取值范围: True:校验加密后数据的sha256,SDK自动计算待上传对象的加密前 sha256 值与加密后的 sha256 值,并存至对象自定义元数据,同时也会在发送请求时置于请求头,服务端收到请求后会计算收到对象的 sha256,如果 sha256 不一致会返回错误信息。 False:不校验加密后数据的sha256。 默认取值: False CTRCipherGenerator 仅需提供一个数据密钥,所有对象均使用该数据密钥进行加密。 方法定义 CTRCipherGenerator(crypto_key, master_key_info=None, crypto_iv=None, need_sha256=False) 接口参数 表2 CTRCipherGenerator 参数名称 参数类型 是否必选 描述 crypto_key str or bytes 必选 参数解释: 加密数据所使用的数据密钥。 约束限制: 长度为 32 bytes。 如果传入的是字符串也会被转换为bytes。 默认取值: 无 master_key_info str 可选 参数解释: 密钥信息,该信息会存至对象的自定义元数据中, 帮助您区分不同crypto_key,需您自行维护 master_key_info 与 crypto_key 的映射关系。 默认取值: 无 crypto_iv str or bytes 可选 参数解释: 加密数据时所使用的初始值。 约束限制: 长度为 16 bytes。 指定crypto_iv时,所有对象均使用该初始值加密;未指定crypto_iv时,SDK会为每个对象随机生成不同初始值。 默认取值: 无 need_sha256 bool 可选 参数解释: 是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。 说明: 为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。 取值范围: True:校验加密后数据的sha256,SDK自动计算待上传对象的加密前 sha256 值与加密后的 sha256 值,并存至对象自定义元数据,同时也会在发送请求时置于请求头,服务端收到请求后会计算收到对象的 sha256,如果 sha256 不一致会返回错误信息。 False:不校验加密后数据的sha256。 默认取值: False
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 GetWorkflowResponse 参数名称 参数类型 描述 name str 参数解释: 工作流名称 默认取值: 无 createdAt str 参数解释: 工作流的创建时间 默认取值: 无 definition Json结构体 参数解释: 工作流的定义 默认取值: 无 graphUrn str 参数解释: 工作流的URN 默认取值: 无 description str 参数解释: 工作流的URN 默认取值: 无
  • HTTP状态码(Python SDK) OBS服务端遵照HTTP规范,在接口调用完成均会返回标准的HTTP状态码,HTTP状态码分类以及OBS中常见的HTTP状态码如下: HTTP状态码分类: 分类 分类描述 1XX 信息,服务器收到请求,需要请求者继续执行操作,一般对客户调用函数不可见。 2XX 成功,操作被成功接收并处理。 3XX 重定向,需要进一步的操作以完成请求。 4XX 客户端错误,请求包含语法错误或无法完成请求。 5XX 服务器错误,服务器在处理请求的过程中发生了错误 OBS中常见的HTTP状态码及其含义: HTTP状态码 描述 常见原因 400 Bad Request 请求参数错误 请求参数不合法; 客户端携带MD5请求后一致性校验失败; 无效的参数(使用SDK时传递了不合法的参数); 无效的桶名(使用了不合法的桶名); 403 Forbidden 拒绝访问 请求的签名不匹配(一般是AK/SK错误); 权限不足(账号对请求的资源无权限); 账号欠费; 桶的空间不足(出现在对桶设置了配额的场景); 无效的AK; 客户端时间和服务端时间相差过大(客户端所在机器的时间与NTP服务不同步); 404 Not Found 请求的资源不存在 桶不存在; 对象不存在; 桶的策略配置不存在(桶CORS配置不存在、桶Policy配置不存在等); 分段上传任务不存在; 405 Method Not Allowed 请求的方法不支持 请求的方法/特性未在该桶所在的区域上线 408 Request Timeout 请求超时 服务端与客户端Socket连接超时 409 Conflict 请求冲突 在不同区域重复创建桶名桶; 尝试删除非空桶; 500 Internal Server Error 服务端内部错误 服务端内部错误 503 Service Unavaliable 服务不可用 服务端暂时不可访问 父主题: 异常处理(Python SDK)
  • 请求参数 表1 请求参数列表 名称 是否必选 参数类型 描述 graphNamePrefix 否 str 参数解释: 工作流的名称前缀 约束限制: 前缀必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符。 默认取值: 无 start 否 int 参数解释: 查询的起始位置 取值范围: [1,1000] 默认取值: 1 limit 否 int 参数解释: 请求返回的最大记录条数 取值范围: [1,1000] 默认取值: 10
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 ListWorkflowResponse 参数名称 参数类型 描述 count int 参数解释: 列表条数 默认取值: 无 graphs Array GraphItem Json结构体 结构体说明 参数解释: 工作流模板列表信息列表 默认取值: 无 nextStart int 参数解释: 下一次查询的起始位置 默认取值: 无 isTruncated bool 参数解释: 表明是否本次返回的ListWorkflow结果列表被截断。 取值范围: True:本次没有返回全部结果 False:本次已经返回了全部结果 默认取值: 无
  • 日志级别 当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息。其中DEBUG日志信息最丰富,ERROR日志信息最少。 具体说明如下: DEBUG:调试级别,如果设置为这个级别,将打印SDK记录的所有日志。 INFO:信息级别,如果设置为这个级别,除了打印WARNING级别的信息外,还将打印HTTP/HTTPS请求的耗时时间等信息。 WARNING:告警级别,如果设置为这个级别,除了打印ERROR级别的信息外,还将打印部分关键事件的信息。 ERROR:错误级别,如果设置为这个级别,仅打印发生异常时的错误信息。 配置文件中的LogFileLevel参数用于设置日志文件的日志级别;PrintLogLevel参数用于设置控制台日志的日志级别。
  • 日志配置 OBS Python SDK基于Python日志库提供了日志功能,您可以通过ObsClient.initLog开启日志功能并进行配置。示例代码如下: # 引入模块from obs import LogConffrom obs import ObsClient# 创建ObsClient实例obsClient = ObsClient( access_key_id=os.getenv("AccessKeyID"), secret_access_key=os.getenv("SecretAccessKey"), server='https://your-endpoint')# 指定日志配置文件路径,初始化ObsClient日志obsClient.initLog(LogConf('./log.conf'), 'obs_logger'); 日志功能默认是关闭的,需要主动开启。 日志配置文件样例(log.conf)包含在OBS Python SDK开发包中,您需要根据实际情况修改log.conf中的配置参数。
  • 日志内容格式 SDK日志格式为:日志时间|进程号|线程号|日志级别|日志内容。示例如下: 2017-11-06 13:46:54,936|process:6100|thread:12700|DEBUG|HTTP(s)+XML|OBS_ LOG GER|__parse_xml,188|http response result:status:200,reason:OK,code:None,message:None,headers:[('id-2', 'LgOKocHfuHe0rFSUHS6LcChzcoYes0luPgqxhUfCP58xp3MZh2n4YKRPpABV8GEK'), ('connection', 'close'), ('request-id', '0001AFF8E60000015F8FDA1EA5AE04E3'), ('date', 'Mon, 06 Nov 2017 05:42:37 GMT'), ('content-type', 'application/xml')]|2017-11-06 13:46:54,937|process:6100|thread:12700|INFO|HTTP(s)+XML|OBS_LOGGER|doClose,349|server inform to close connection|2017-11-06 13:46:54,937|process:6100|thread:12700|INFO|HTTP(s)+XML|OBS_LOGGER|wrapper,59|listBuckets cost 56 ms|
  • 请求参数 表1 请求参数列表 名称 是否必选 参数类型 描述 graphName 是 str 参数解释: 工作流名称 约束限制: 名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 默认取值: 无 bucket 是 str 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 object 是 str 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 inputs 否 map 参数解释: 工作流中可修改参数列表 约束限制: Map中的key必须是工作流中的parameter中的名字 默认取值: 无
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 AsyncAPIStartWorkflowResponse 参数名称 参数类型 描述 executionUrn str 参数解释: 运行实例的URN 默认取值: 无 startedAt str 参数解释: 运行实例启动时间 默认取值: 无 executionName str 参数解释: 运行实例的名字 默认取值: 无
  • 代码样例 此用例用于生成带授权信息的表单上传参数policy和signature。 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930 from obs import ObsClientimport osimport traceback# 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlak = 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())
  • 返回结果 表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 默认取值: 无
  • 请求参数 表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的字符串。 默认取值: 无 说明: 对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 uploadId str 必选 参数解释: 分段上传任务的ID,例如:000001648453845DBB78F2340DD460D8 取值范围: 长度为32的字符串。 默认取值: 无 extensionHeaders dict 可选 参数解释: 接口的拓展头域。 取值范围: 参考自定义头域。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有取消分段上传任务的权限,才能取消分段上传任务。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:AbortMultipartUpload权限,如果使用桶策略则需授予AbortMultipartUpload权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无
  • 请求参数 表1 请求参数列表 参数名称 参数类型 是否必选 描述 bucket str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 multipart ListMultipartUploadsRequest 可选 参数解释: 列举分段上传任务请求参数。ListMultipartUploadsRequest。 extensionHeaders dict 可选 参数解释: 接口的拓展头域。 取值范围: 参考自定义头域。 默认取值: 无 encoding_type str 可选 参数解释: 用于指定对响应中的Key进行指定类型的编码。如果Key包含xml 1.0标准不支持的控制字符,可通过设置该参数对响应中的Key进行编码。 取值范围: 可选值为url。 默认取值: 无,不设置则不编码。 表2 ListMultipartUploadsRequest 参数名称 参数类型 是否必选 描述 prefix str 可选 参数解释: 限定返回的分段上传任务中的对象名必须带有prefix前缀。 例如,假设您拥有以下对象:logs/day1、logs/day2、logs/day3和ExampleObject.jpg。如果您将logs/指定为前缀,将返回以字符串“logs/”开头的三个对象所在的分段上传任务。如果您指定空的前缀且请求中没有其他过滤条件,将返回桶中的所有分段上传任务。 约束限制: 长度大于0且不超过1024的字符串。 默认取值: 无 max_uploads int 或 str 可选 参数解释: 列举分段上传任务的最大数目。 约束限制: 当该参数超出1000时,按照默认的1000进行处理。 取值范围: 1~1000,单位:个。 默认取值: 1000 delimiter str 可选 参数解释: 对分段上传任务中的对象名进行分组的字符。通常与前缀prefix搭配使用,如果指定了prefix,从prefix到第一次出现delimiter间具有相同字符串的对象名会被分成一组,形成一条CommonPrefix;如果没有指定prefix,从对象名的首字符到第一次出现delimiter间具有相同字符串的对象名会被分成一组,形成一条CommonPrefix。 例如,桶中有3个对象,分别为abcd、abcde、bbcde。如果指定delimiter为d,prefix为a,abcd、abcde会被分成一组,形成一条前缀为abcd的CommonPrefix;如果只指定delimiter为d,abcd、abcde会被分成一组,形成一条前缀为abcd的CommonPrefix,而bbcde会被单独分成一组,形成一条前缀为bbcd的CommonPrefix。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 key_marker str 可选 参数解释: 列举分段上传任务的起始位置。表示列举时返回指定的key_marker之后的分段上传任务。 取值范围: 上次请求返回体的nextKeyMarker值。 默认取值: 无 upload_id_marker str 可选 参数解释: 列举分段上传任务的起始位置(uploadId标识)。 约束限制: 只有与key_marker参数一起使用时才有意义,即列举时返回指定keyMarker的uploadIdMarker之后的分段上传任务。 取值范围: 对象的分段上传任务ID,即上次请求返回体的nextUploadIdMarker值。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有列举分段上传任务的权限,才能列举分段上传任务。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:ListBucketMultipartUploads权限,如果使用桶策略则需授予ListBucketMultipartUploads权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 您必须得到可以对桶执行ListBucketMultipartUploads操作的权限,才能列出正在上传到该桶的多段上传。 默认情况下,允许桶所有者和多段上传任务的发起者执行此操作。除了默认情况之外,桶所有者可以允许其他委托人对桶执行ListBucketMultipartUploads操作。
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 ListWorkflowExecutionResponse 参数名称 参数类型 描述 count int 参数解释: 满足条件的运行实例个数 取值范围: 大于等于0的整型数。 默认取值: 无 nextMarker str 参数解释: 用于标明本次请求列举到的最后一个工作流实例。后续请求可以指定nextMarker等于该值来列举剩余的工作流实例。 约束限制: 如果isTruncated为false,该字段不会返回。 默认取值: 无 isTruncated bool 参数解释: 表明是否本次返回的ListWorkflowExecution结果列表被截断。 取值范围: True:本次没有返回全部结果 False:本次已经返回了全部结果 默认取值: 无 executions Array ExecutionDetail Json结构体 结构体说明 参数解释: 实例信息列表 默认取值: 无
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全