云服务器内容精选

  • 功能说明 临时授权访问是指通过访问密钥、请求方法类型、请求参数等信息生成一个临时访问权限的URL,这个URL中会包含鉴权信息,您可以使用该URL进行访问OBS服务进行特定操作。在生成URL时,您需要指定URL的有效期。生成临时授权访问的URL是通过设置结构体temp_auth_configure来实现的。 temp_auth_configure结构体存在于obs_options结构体中。该方法适用于每个C SDK接口。 参数 作用 SDK中对应的结构体 expires 生成的临时URL的有效期 obs_options. temp_auth_configure temp_auth_callback 回调函数用于返回生成的临时URL callback_data 回调数据
  • 接口约束 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Authorization 是 String 该字段存储的是Access Token。调用KooDrive的API使用Token认证,拥有Token就代表拥有某种权限,在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Access Token的获取请参考对应的开发手册,格式参考:Bearer+{access_token} X-Traceid 否 String 消息日志跟踪标识(必须58位)
  • 响应参数 状态码:200 表2 响应Body参数 参数 参数类型 描述 code Integer 响应码 msg String 响应信息 data JsSdkData object jsSdk信息 表3 JsSdkData 参数 参数类型 描述 page_token_key String 后端接口返回参数 page_token String 后端接口返回参数 js_sdk_url String jsSdk的地址 retry_js_sdk_url String jsSdk的地址 transaction_id String 事务id orgid_config String 后端接口返回参数,格式必须为json字符串。值中sdk_auth_code只能使用一次。每次初始化必须后端重新获取。
  • 响应示例 状态码:200 获取JsSdk响应。 { "data" : { "page_token_key" : "1724663471194", "page_token" : "752**************************2aa", "js_sdk_url" : "https://orgid-beta.ulanqab.huawei.com/orgid/console-web/jssdk/jssdk.umd.js", "retry_js_sdk_url" : "https://orgid-beta.ulanqab.huawei.com/orgid/console-web/jssdk/jssdk.umd.js", "transaction_id" : "1724663471194", "orgid_config" : "{\"sdk_auth_code\":\"043********************5e1\",\"organization_source\":\"HUAWEI_ID\"}" }, "code" : 0, "msg" : "Successful." }
  • 支持接口 OBS Go SDK支持服务端加密的接口见下表: OBS Go SDK接口方法 描述 支持加密类型 ObsClient.PutObject 上传对象时设置加密算法、密钥,对对象启用服务端加密。 SSE-KMS SSE-C ObsClient.PutFile 上传文件时设置加密算法、密钥,对对象启用服务端加密。 SSE-KMS SSE-C ObsClient.GetObject 下载对象时设置解密算法、密钥,用于解密对象。 SSE-C ObsClient.CopyObject 复制对象时设置源对象的解密算法、密钥,用于解密源对象。 复制对象时设置目标对象的加密算法、密钥,对目标对象启用加密算法。 SSE-KMS SSE-C ObsClient.GetObjectMetadata 获取对象元数据时设置解密算法、密钥,用于解密对象。 SSE-C ObsClient.InitiateMultipartUpload 初始化分段上传任务时设置加密算法、密钥,对分段上传任务最终生成的对象启用服务端加密。 SSE-KMS SSE-C ObsClient.UploadPart 上传段时设置加密算法、密钥,对分段数据启用服务端加密。 SSE-C ObsClient.CopyPart 复制段时设置源对象的解密算法、密钥,用于解密源对象。 复制段时设置目标段的加密算法、密钥,对目标段启用加密算法。 SSE-C
  • 功能说明 用户可以使用普通方式上传、下载对象,也可以使用服务端加密方式进行上传、下载对象。 OBS支持服务端加密功能,使加密的行为在服务端进行。 用户可以根据自身的需求,使用不同的密钥管理方式来使用服务端加密功能。当前支持两种服务端加密方式: KMS托管密钥的服务端加密(SSE-KMS)和客户提供加密密钥的服务端加密(SSE-C)。上述两种方式都采用行业标准的AES256加密算法。 SSE-KMS方式,OBS使用KMS(Key Management Service)服务提供的密钥进行服务端加密。 SSE-C方式,OBS使用用户提供的密钥和密钥的MD5值进行服务端加密。 使用服务端加密,返回的ETag值不是对象的MD5值。无论是否使用服务端加密上传对象,请求消息头中加入Content-MD5参数时,OBS均会对对象进行MD5校验。
  • 代码样例 此用例用于生成带授权信息的表单上传参数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())
  • 请求参数 表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 默认取值: 无
  • 返回结果 表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= 默认取值: 无
  • 返回结果 表3 CreateBrowserBasedSignatureOutput 参数名称 参数类型 描述 OriginPolicy string 参数解释: Policy未经过base64之前的值,仅用于校验。 示例:{"expiration":"2023-09-12T12:52:59Z","conditions":[{"content-type":"text/plain"},{"bucket":"examplebucket"},{"key":"example/objectname"},]}"。 默认取值: 无 Policy string 参数解释: 表单中的policy,已经base64之后的值。 示例:eyJleHBpcmF0aW9uIjoiMjAyMy0wOS0xMlQxMjo1Mjo1OVoiLCJjb25kaXRpb25zIjpbeyJjb250ZW50LXR5cGUiOiJ0ZXh0L3BsYWluIn0seyJidWNrZXQiOiJleGFtcGxlYnVja2V0In0seyJrZXkiOiJleGFtcGxlL29iamVjdG5hbWUifSxdfQ==。 默认取值: 无 Signature string 参数解释: 表单中的signature。 示例:g0jQr4v9VWd1Q2FOFDG6LGfV9Cw=。 默认取值: 无
  • 请求参数 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input CreatePostSignatureSyncInput 必选 参数解释: 生成带授权信息的表单上传参数接口入参,详见CreatePostSignatureSyncInput。 表2 CreatePostSignatureSyncInput 参数名称 参数类型 是否可选 描述 Bucket string 可选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Key string 可选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4. emyhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 Expires number 可选 参数解释: 表单上传鉴权的过期时间。 取值范围: 0~(263-1),单位:秒。 默认取值: 300 FormParams object 可选 参数解释: 除key,policy,signature外,表单上传时的其他参数。 取值范围: acl、cache-control、content-type、content-disposition、content-encoding、expires。 默认取值: 无
  • 请求参数 字段名 类型 约束 说明 Bucket string 可选 桶名。 Key string 可选 对象名,对应表单中的key字段。 Expires integer 可选 表单上传鉴权参数的过期时间(单位:秒),默认值300。 FormParams associative array 可选 除key、policy、signature外,表单上传时的其他参数,支持的值: acl cache-control content-type content-disposition content-encoding expires