华为云用户手册

  • 接口约束 您必须是桶拥有者或拥有取消分段上传任务的权限,才能取消分段上传任务。建议使用 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无
  • 方式一:使用pip安装(推荐) 运行pip -V命令确保pip已安装。 运行pip install esdk-obs-python --trusted-host pypi.org命令执行安装。 如果您的环境尚未安装pip,请参见pip官网安装。 如果您使用的是Windows操作系统,当运行pip命令时提示“不是内部或外部命令”,请在Path环境变量中增加pip的安装目录(一般为Python所在目录的Scripts文件夹)。 您可能需要重启电脑使环境变量生效。
  • 上传加密段 上传加密段继承自普通 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
  • 接口约束 您必须是桶拥有者或拥有获取桶存储类型的权限,才能获取桶存储类型。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:GetBucketStoragePolicy权限,如果使用桶策略则需授予GetBucketStoragePolicy权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 请求参数说明 参数名称 参数类型 是否必选 描述 bucketName str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有获取桶的CORS配置的权限,才能获取桶的CORS配置。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:GetBucketCORS权限,如果使用桶策略则需授予GetBucketCORS权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 请求参数说明 参数名称 参数类型 是否必选 描述 bucketName str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无
  • 功能介绍 跨域资源共享(Cross Origin Resource Sharing,CORS)是由W3C标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端Web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(Same Origin Policy,SOP)的存在,不同域之间的网站脚本和内容是无法进行交互的。OBS支持CORS规范,允许跨域请求访问OBS中的资源。 调用获取桶的CORS配置接口,您可获取指定桶的跨域资源共享规则。
  • 接口约束 您必须是桶拥有者或拥有获取对象元数据的权限,才能获取对象元数据。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 拥有对象读权限的用户可以执行HEAD操作命令获取对象元数据,返回信息包含对象的元数据信息。
  • 请求参数 表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 可选 参数解释: 表单上传鉴权的过期时间。 取值范围: 正整数。单位:秒。 默认取值: 300 formParams dict 可选 参数解释: 除key,policy,signature外,表单上传时的其他参数 取值范围: (注:以下值使用时,需要添加x-obs的前缀,以acl为例,formParams['x-obs-acl']='public-read',各值的取值范围请参照API中响应头域的介绍) acl cache-control content-type content-disposition content-encoding expires 默认取值: 无
  • 返回结果 表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= 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 HTML表单中的policy,signature的值均是从ObsClient.createPostSignature的返回结果中获取。您可以直接下载表单HTML示例PostDemo。
  • 功能说明 基于表单上传是使用HTML表单形式上传对象到指定桶中,对象最大不能超过5GB。可以通过ObsClient.createPostSignature生成基于表单上传的请求参数。使用代码模拟表单上传的完整代码示例,参见post_object_sample。您也可以通过如下步骤进行表单上传: 使用ObsClient.createPostSignature生成用于鉴权的请求参数。 准备表单HTML页面。 将生成的请求参数填入HTML页面。 选择本地文件,进行表单上传。 使用SDK生成用于鉴权的请求参数包括两个: policy,对应表单中policy字段。 signature,对应表单中的signature字段。
  • 返回结果 表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 参数解释: 对象的全路径。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 单次上传对象大小范围是[0, 5GB]。 如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。
  • 请求参数 表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的字符串。 默认取值: 无 content str 或 readable object 可选 参数解释: 待上传对象的内容。 取值范围: 字符串或者可读对象。 说明: 如果content是可读对象(包含“read”属性),则从中读取数据,否则作为字符串处理。 默认取值: 无 metadata dict 可选 参数解释: 待上传对象的自定义元数据。OBS支持用户使用以“x-obs-meta-”开头的消息头来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回的消息头中出现。 约束限制: 所有自定义元数据大小的总和不超过8K。单个自定义元数据大小的计算方式为:每个键和值的UTF-8 编码中的字节总数。 自定义元数据的key值不区分大小写,OBS统一转为小写进行存储。value值区分大小写。 自定义元数据key-value对都必须符合US-ASCII标准。如果一定要使用非ASCII码或不可识别字符,需要客户端自行做编解码处理,可以采用URL编码或者Base64编码,服务端不会做解码处理。例如x-obs-meta-中文:中文 经URL编码后发送,“中文”的URL编码为:%E4%B8%AD%E6%96%87,则响应为x-obs-meta-%E4%B8%AD%E6%96%87: %E4%B8%AD%E6%96%87 默认取值: 无 headers PutObjectHeader 可选 参数解释: 上传对象的头域,用于设置对象的基本信息,包括存储类别、冗余策略等。 取值范围: 参考PutObjectHeader。 默认取值: 无 progressCallback callable 可选 参数解释: 获取上传进度的回调函数。 默认取值: 无 说明: 该回调函数依次包含三个参数:已上传的字节数、总字节数、已使用的时间(单位:秒),示例代码参考上传对象-获取上传进度。 上传进度回调功能仅支持流式上传、文件上传、上传段、追加上传和断点续传上传。 autoClose bool 可选 参数解释: 上传完成后,自动关闭数据流。 取值范围: True:自动关闭数据流。 False:不开启自动关闭数据流。 默认取值: True
  • 接口约束 您必须是桶拥有者或拥有获取桶标签的权限,才能获取桶标签。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:GetBucketTagging权限,如果使用桶策略则需授予GetBucketTagging权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 请求参数说明 参数名称 参数类型 是否必选 描述 bucketName str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无
  • 日志级别 当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息。其中DEBUG日志信息最丰富,ERROR日志信息最少。 具体说明如下: DEBUG:调试级别,如果设置为这个级别,将打印SDK记录的所有日志。 INFO:信息级别,如果设置为这个级别,除了打印WARNING级别的信息外,还将打印HTTP/HTTPS请求的耗时时间等信息。 WARNING:告警级别,如果设置为这个级别,除了打印ERROR级别的信息外,还将打印部分关键事件的信息。 ERROR:错误级别,如果设置为这个级别,仅打印发生异常时的错误信息。 配置文件中的LogFileLevel参数用于设置日志文件的日志级别;PrintLogLevel参数用于设置控制台日志的日志级别。
  • 日志内容格式 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|
  • 日志配置 OBS Python SDK基于Python日志库提供了日志功能,您可以通过ObsClient.initLog开启日志功能并进行配置。示例代码如下: # 引入模块 from obs import LogConf from 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中的配置参数。
  • 返回结果 表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 GetResult.body类型 说明 ACL 参数解释: 对象的访问权限。详见ACL。 默认取值: 无 表5 ACL 参数名称 参数类型 是否必选 描述 owner Owner 作为请求参数时必选 参数解释: 所有者信息。详见Owner。 约束限制: owner和grants必须配套使用,且与ACL互斥。 默认取值: 无 grants list of Grant 作为请求参数时必选 参数解释: 被授权用户权限信息列表。详见Grant。 默认取值: 无 delivered bool 作为请求参数时可选 参数解释: 桶的ACL是否向桶内对象传递。作用于桶内所有对象。 取值范围: True:是,桶ACL向桶内对象传递。 False:否,桶ACL不向桶内对象传递,仅作用于桶。 默认取值: False 表6 Owner 参数名称 参数类型 是否必选 描述 owner_id str 作为请求参数时必选 参数解释: 所有者的账号ID,即domain_id。 取值范围: 如何获取账号ID请参见如何获取账号ID和用户ID? 默认取值: 无 owner_name str 作为请求参数时可选 参数解释: 所有者的账号用户名。 取值范围: 如何获取账号用户名请参见如何获取用户名? 默认取值: 无 表7 Grant 参数名称 参数类型 是否必选 描述 grantee Grantee 作为请求参数时必选 参数解释: 被授权用户相关信息,详见Grantee。 默认取值: 无 permission str 作为请求参数时必选 参数解释: 被授予的权限。 取值范围: 权限取值范围详见权限。 默认取值: 无 delivered bool 作为请求参数时可选 参数解释: 桶的ACL是否向桶内对象传递。作用于桶内所有对象。 取值范围: True:是,桶ACL向桶内对象传递。 False:否,桶ACL不向桶内对象传递,仅作用于桶。 默认取值: False 表8 Permission 常量值 说明 READ 读权限。 如果有桶的读权限,则可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本。 如果有对象的读权限,则可以获取该对象内容和元数据。 WRITE 写权限。 如果有桶的写权限,则可以上传、覆盖和删除该桶内任何对象和段。 此权限在对象上不适用。 READ_ACP 读取ACL配置的权限。 如果有读ACP的权限,则可以获取对应的桶或对象的权限控制列表(ACL)。 桶或对象的所有者永远拥有读对应桶或对象ACP的权限。 WRITE_ACP 修改ACL配置的权限。 如果有写ACP的权限,则可以更新对应桶或对象的权限控制列表(ACL)。 桶或对象的所有者永远拥有写对应桶或对象的ACP的权限。 拥有了写ACP的权限,由于可以更改权限控制策略,实际上意味着拥有了完全访问的权限。 FULL_CONTROL 完全控制权限,包括对桶或对象的读写权限,以及对桶或对象ACL配置的读写权限。 如果有桶的完全控制权限意味着拥有READ、WRITE、READ_ACP和WRITE_ACP的权限。 如果有对象的完全控制权限意味着拥有READ、READ_ACP和WRITE_ACP的权限。 表9 Grantee 参数名称 参数类型 是否必选 描述 grantee_id str 作为请求参数时,如果group为空则必选。 参数解释: 被授权用户的账号ID,即domain_id。 取值范围: 如何获取账号ID请参见获取账号ID。 默认取值: 无 grantee_name str 作为请求参数时可选 参数解释: 被授权用户的账号名。 约束限制: 不支持中文。 只能以字母开头。 长度为6-32个字符。 只能包含英文字母、数字或特殊字符(-_)。 默认取值: 无 group str 作为请求参数时,如果grantee_id为空则必选。 参数解释: 被授权的用户组。 取值范围: 授权用户组取值范围详见用户组。 默认取值: 无 表10 Group 常量值 说明 ALL_USERS 所有用户。 AUTHENTICATED_USERS 授权用户,已废弃。 LOG_DELIVERY 日志投递组,已废弃。
  • 接口约束 您必须是桶拥有者或拥有获取对象ACL的权限,才能获取对象ACL。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObjectAcl权限,如果使用桶策略则需授予GetObjectAcl权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 用户必须拥有对指定对象读ACP(access control policy)的权限,才能执行获取对象ACL的操作。
  • 请求参数 表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的字符串。 默认取值: 无 versionId str 可选 参数解释: 对象的版本号。例如:G001117FCE89978B0000401205D5DC9A。 取值范围: 长度为32的字符串。 默认取值: 无
  • 上传对象简介(Python SDK) 上传对象到指定桶中。在OBS中,用户操作的基本数据单元是对象。OBS Python SDK提供了丰富的对象上传接口,可以通过以下方式上传对象: 文本上传:使用字符串作为对象的数据源。 流式上传:使用包含“read”属性的可读对象作为对象的数据源。 文件上传:使用本地文件作为对象的数据源。 分段上传:对于较大文件上传,可以切分成段上传。 追加上传:对同一个对象追加数据内容。 断点续传上传:对分段上传的封装和加强,解决上传大文件时由于网络不稳定或程序崩溃导致上传失败的问题。 基于表单上传:使用HTML表单形式上传对象到指定桶中。 SDK支持上传0KB~5GB的对象。流式上传、文件上传和追加上传每次上传内容大小不能超过5GB;当上传较大文件时,请使用分段上传,分段上传每段内容大小不能超过5GB;基于表单上传提供了基于浏览器表单上传对象的方式。 如果上传的对象权限设置为匿名用户读取权限,对象上传成功后,匿名用户可通过链接地址访问该对象数据。对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 父主题: 对象相关接口(Python SDK)
  • 返回结果说明 类型 说明 GetResult 参数解释: SDK公共结果对象。 表1 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时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 GetResult.body类型 说明 WebsiteConfiguration 参数解释: 桶的Website配置。 表2 WebsiteConfiguration 参数名称 参数类型 是否必选 描述 redirectAllRequestTo RedirectAllRequestTo 作为请求参数时可选 参数解释: 所有请求重定向规则,详见RedirectAllRequestTo。 indexDocument IndexDocument 作为请求参数时可选 参数解释: 默认页面配置,详见IndexDocument。 errorDocument ErrorDocument 作为请求参数时可选 参数解释: 错误页面配置,详见ErrorDocument。 routingRules list of RoutingRule 作为请求参数时可选 参数解释: 请求重定向规则列表,详见RoutingRule。 errorDocument、indexDocument和routingRules必须配套使用,且与redirectAllRequestsTo互斥。当设置了这三个字段时,不能设置redirectAllRequestsTo;反之,当设置了redirectAllRequestsTo时,不能设置errorDocument、indexDocument和routingRules。 当errorDocument、indexDocument和routingRules三个字段一起使用时,routingRules可为空。 errorDocument、indexDocument、routingRules与redirectAllRequestsTo不能全为空。 表3 RedirectAllRequestTo 参数名称 参数类型 是否必选 描述 hostName str 作为请求参数时必选 参数解释: 重定向时使用的域名。如 www.example.com。 约束限制: 域名需符合域名规范。 默认取值: 无 protocol str 作为请求参数时可选 参数解释: 重定向请求时使用的协议。 取值范围: http https 默认取值: 无 表4 IndexDocument 参数名称 参数类型 是否必选 描述 suffix str 作为请求参数时必选 参数解释: 该字段被追加在对文件夹的请求的末尾(例如:suffix参数设置为“index.html”,请求的是“samplebucket/images/”,返回的数据将是“samplebucket”桶内名为“images/index.html”的对象的内容)。 取值范围: 该字段不能为空或者包含“/”字符。 默认取值: 无 表5 ErrorDocument 参数名称 参数类型 是否必选 描述 key str 作为请求参数时可选 参数解释: 当4XX错误出现时使用的对象的名称。这个元素指定当错误出现时返回的页面。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 表6 RoutingRule 参数名称 参数类型 是否必选 描述 condition Condition 作为请求参数时可选 参数解释: 重定向规则生效需要满足的条件。 取值范围: 匹配条件选择范围详见Condition。 默认取值: 无 redirect Redirect 作为请求参数时必选 参数解释: 重定向请求时的具体信息,详见Redirect。 默认取值: 无 表7 Condition 参数名称 参数类型 是否必选 描述 keyPrefixEquals str 作为请求参数时可选 参数解释: 重定向生效时的对象名前缀。当向对象发送请求时,如果对象名前缀等于这个值,那么重定向生效。 例如:重定向ExamplePage.html对象的请求,KeyPrefixEquals设为ExamplePage.html。 约束限制: 与httpErrorCodeReturnedEquals参数不可同时使用,两者二选一。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 httpErrorCodeReturnedEquals int 作为请求参数时可选 参数解释: 重定向生效时的HTTP错误码。当发生错误时,如果错误码等于这个值,那么重定向生效。 例如:当返回的HTTP错误码为404时重定向到NotFound.html,可以将Condition中的HttpErrorCodeReturnedEquals设置为404,Redirect中的ReplaceKeyWith设置为NotFound.html。 约束限制: 与keyPrefixEquals参数不可同时使用,两者二选一。 取值范围: 取值范围可参见错误码。 默认取值: 无 表8 Redirect 参数名称 参数类型 是否必选 描述 protocol str 作为请求参数时可选 参数解释: 重定向请求时使用的协议。 取值范围: http https 默认取值: 无 hostName str 作为请求参数时可选 参数解释: 重定向请求时使用的域名。 默认取值: 无 replaceKeyPrefixWith str 作为请求参数时可选 参数解释: 重定向请求时使用的对象名前缀。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 replaceKeyWith str 作为请求参数时可选 参数解释: 重定向请求时使用的对象名。 约束限制: 不可与replaceKeyPrefixWith同时使用。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 httpRedirectCode int 作为请求参数时可选 参数解释: 重定向请求时响应中的HTTP状态码,详见状态码。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有获取桶的网站配置的权限,才能获取桶的网站配置。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:GetBucketWebsite权限,如果使用桶策略则需授予GetBucketWebsite权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 请求参数说明 参数名称 参数类型 是否必选 描述 bucketName str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无
共100000条