云服务器内容精选

  • 前提条件 AstroZero提供了默认对接的ROMA Connect服务器,也支持对接通过华为云开通的自有ROMA Connect实例。本章节以AstroZero对接自有ROMA Connect为例进行说明,默认对接的ROMA Connect服务器配置类似。 已在ROMA Connect平台上完成应用创建(创建时,应用的“Key”字符长度必须小于60,否则后续向AstroZero同步时会失败)、函数API创建、API分组创建、API创建、调试、发布和授权操作。关于ROMA Connect的具体操作,请参见使用ROMA Connect集成服务与配置API授权。 如图1所示,已在ROMA Connect平台创建“人员管理”应用。如图2所示,已发布“获取人员信息”API,且该API已授权给“人员管理”应用。 图1 集成应用 图2 授权API 已在ROMA Connect上,设置“app_secret”和“app_route”值为“on”。 修改方法:在ROMA Connect实例控制台的“实例信息”页面,选择“配置参数”,修改“app_secret”和“app_route”的“参数运行值”为“on”。 对接自有ROMA Connect实例时,请确保已参考设置应用中对接的ROMA Connect信息中操作,在AstroZero中设置ROMA Connect实例信息。
  • 在脚本中,调用动作 创建一个脚本,通过在脚本中调用Rest服务中添加的动作,将第三方提供的业务功能集成到AstroZero中使用。 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 单击脚本后的,设置脚本名称,单击“添加”。 图12 新增一个空脚本 在脚本编辑器中,输入如下代码。 // Here's your code. import * as connector from "connector"; let client = connector.newClient("命名空间__test", "test1"); let result = client.invoke("命名空间_flapRefund", {}); console.log(result) 其中,“命名空间__test”表示连接器的名称,“test1”为创建自定义连接器对接Rest服务配置的认证信息名称,“命名空间__flapRefund”为创建并启用Rest动作中配置的动作名称。 单击脚本编辑器页面上方的,保存脚本。 脚本保存成功后,单击,运行脚本。 在页面底部“输入参数”页签中,输入请求参数,单击测试窗口右上角的。 在“日志”页签,查看打印的日志。
  • 在脚本中调用连接器 在脚本中,调用连接器,实现调用ModelArts的接口。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 import * as modelarts from 'modelarts'; export class Input { @action.param({ type: "String", required: false, description: "the image url" }) url: string; @action.param({ type: "String", required: false, description: "the base64 coded image" }) image: string; @action.param({ type: "String", required: false, description: "" }) apigCode: string @action.param({ type: "String", required: false, description: "" }) modelId: string } export class Output { @action.param({ type: "string" }) result: string; } export class testModelarts { @action.method({ input: "Input", output: "Output", description: "modelartspro test case" }) run(input: Input): void { // 填写实例化的modelartspro连接器名称 let client = modelarts.newClient("testArts") let result = null result = client.modelArtsWithURL(input.url, input.apigCode, input.modelId); console.log(result) return result } } 其中,代码modelarts.newClient("testArts")中“testArts”为连接器的名称。如果连接器名称中带有命名空间前缀,代码中也需要携带。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 在页面底部“输入参数”中,设置输入请求参数,单击测试窗口右上角的。 { "url": "https://XXXXXXXXX/testmodelarts.jpg", "apigCode": "bec274062225485b95fbcd4d6e8f128a", "modelId": "5ecac550-eefe-4437-9767-57eca07fa91f" } 其中,“url”请设置为图片的URL。 在输出参数页签,可查看到识别的结果。 { "predicted_label": "roses", "scores": [ [ "roses", "0.947" ], [ "daisy", "0.050" ], [ "tulips", "0.002" ], [ "dandelion", "0.000" ], [ "sunflowers", "0.000" ] ] } 单击脚本编辑器页面上方的,启用脚本。
  • 更多操作 连接器创建完成后,您还可以执行如表2操作。 表2 更多操作 操作 说明 编辑连接器名称和图标 Roma连接器同步成功后,您可以编辑连接器名称和图标,编辑完成后单击右上角“修改”。 连接器名称:默认为Roma连接器名称,支持编辑名称。 连接器图标:支持选择系统图标和本地上传图标,本地上传图标只能上传JPG/PNG文件,且不能超过500KB,建议尺寸为80X80。 设置执行动作 Roma连接器同步成功后,在Roma连接器详情页面,您还可以新增、编辑和删除Roma连接器动作。 新增Roma连接器动作:在“设置动作”处单击“从Roma同步”,输入Access Key id和Secret Access Key即可添加Roma连接器动作。 编辑已同步Roma连接器动作:在“设置动作”处双击动作卡片,或将鼠标悬停在动作卡片上单击右上角即可进入动作编辑页面,编辑完成后,单击右上角“修改”即可将编辑后的内容保存成功。 支持编辑动作名称和动作描述。 支持编辑请求参数中的参数描述,返回参数中的名称和参数描述。 删除已同步Roma连接器动作:将鼠标悬停在动作卡片上,单击右上角即可删除动作,删除动作完成后,单击右上角“修改”保存修改后的连接器。 删除连接器 将鼠标悬停在Roma连接器卡片上,单击右下角即可删除同步的Roma连接器。
  • 从Roma同步连接器 登录圆桌,在页面右上角单击“轻应用构建”,进入“轻应用构建”平台。 在页面右上角单击“连接器”,进入连接器页面。 在“我的连接器”页签,单击“创建连接器”,选择“从Roma同步连接器”,如图1所示。 图1 从Roma同步连接器 按照表1填写连接Roma连接器需要的信息,单击“下一步”。 表1 连接Roma连接器所需信息 参数 说明 Access Key id 查询Roma连接器时所需要的访问密钥ID,识别访问用户的身份。与私有访问密钥关联的唯一标识符,访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。获取方法请参见 IAM 认证开发。 Secret Access Key 查询Roma连接器时所需要的秘密访问密钥。与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。获取方法请参见IAM认证开发。 项目 Roma连接器实例所在节点。获取项目具体操作如下: 登录华为云管理控制台,单击右上角用户名,在下拉列表中单击“我的凭证”,左侧栏选择“API凭证”,在项目列表可以查看具体项目信息。 实例 Roma连接器所在的实例。 图2 填写连接Roma连接器所需信息 选择需同步的Roma连接器及其动作,单击“确定”。Roma连接器及其动作同步成功后,会自动将接口所需要的参数同步到页面中。 如果需要修改连接Roma连接器所需的信息,请单击“上一步”。 当前仅可同步鉴权方式为无鉴权和APP鉴权的API。 最多显示最近更新的20个API,且最多可选择20个API进行同步。 图3 选择Roma连接器及其动作 测试执行动作。 Roma连接器及其动作同步成功后,你可以先测试执行动作,执行动作测试通过后再使用连接器。 双击动作卡片,或将鼠标悬停在动作卡片上单击右上角进入动作编辑页面。 在“执行动作”处单击右侧“测试”,输入请求参数实际值,单击“测试”。 状态显示“成功”,表示执行动作可以正常使用。 状态显示“失败”,表示执行动作异常,无法正常使用。
  • 更多操作 连接器创建完成后,您还可以执行如表2操作。 表2 更多操作 操作 说明 编辑连接器基本信息 双击连接器卡片,或者将鼠标悬停在连接器上单击右下角,进入连接器详情页面即可编辑连接器基本信息。 设置执行动作 双击连接器卡片,或者将鼠标悬停在连接器上单击右下角,进入连接器详情页面,在“设置动作”处可以新增、编辑和删除执行动作,具体操作可参见设置执行动作。 删除连接器 将鼠标悬停在连接器上,单击右下角即可删除连接器。
  • 操作步骤 登录圆桌,在页面右上角单击“轻应用构建”,进入“轻应用构建”平台。 在页面右上角单击“连接器”,进入连接器页面。 在“我的连接器”页签,单击“创建连接器”,选择“创建自定义连接器”,如图1所示。 图1 创建自定义连接器 在“创建连接器”页面,设置连接器基本信息,具体参数说明如表1所示。 表1 连接器基本信息 参数 说明 连接器名称 填写连接器的名称,根据规划自定义。建议您按照一定的命名规则填写连接器名称,方便您快速识别和查找。 连接器图标 支持自定义图标或选择系统图标。 自定义图标:只能上传JPG/PNG文件,且不能超过500KB,建议尺寸为80X80。 描述 连接器的描述信息,该描述将显示在连接器的详情中,帮助用户了解连接器。 请求协议 协议类型,支持http或https。 域名 请求的 host 地址,开头不需要带“http://”或“https://”协议头,结尾不需要带“/”。 基准URL 配置请求地址中的基本前缀 URL,没有可以直接填写 “/”。 身份认证 连接器安全认证方式。 无身份认证:不需要任何验证信息,直接调用接口。任何用户都可以使用您的连接器,通常用于访问一些公开接口。 API密钥:即API key鉴权方式,用户在使用连接器前需提供API密钥所需的字段,以及该验证所必须的字段值。 参数标签(Key):用于配置鉴权信息里键值对的Key。 参数值(Value):用于配置鉴权信息里键值对的Value。 参数位置:可以选择把鉴权信息附加在Query或Header里,根据请求的系统需要选择。 圆桌API网关:圆桌提供的API访问鉴权。 图2 设置连接器基本信息 设置完成后,单击右上角“创建”,连接器创建成功。 自定义连接器创建成功后,系统会停留在连接器详情页面,您需要在连接器详情页面下方设置执行动作后,才能使用连接器。
  • 前提条件 已申请身份证识别服务,具体操作请参见开通 文字识别 服务。 图1 已申请身份证识别服务 已获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已将身份证照片上传到华为云的OBS存储桶,并获取到图片的URL,具体操作请参见如何上传文件。 已将身份证图片转换为base64编码,具体操作请参见如何获取图片base64编码。
  • 在脚本中调用连接器 在脚本中,调用连接器实现与OCR的对接。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 通过脚本中的如下代码,可基于已上传身份证的URL,调用OCR接口进行识别,并输出识别的基本信息。 //导入该事件所依赖的标准库文件。ocr是系统预置的标准库。 import * as ocr from 'ocr'; let cli = ocr.newClient("OCR_Test"); try { let url = "https://obs-example.com:443/1.PNG?AccessKeyId=ZK87UUIONJF5ZHWBINUO&Expires=1556001233&Signature=DOwO6djb4Q3EBvCieQFaO3T2GKU%3D&x-obs-security-token=gQpjbi1ub3J0aC0xipYOeC2mcbefHh5I_aMr6DEWQ8-iFyxqatavdiFtYowH-lpJCcxeTynsV_4PTJe9QIx85mlDIDo3sU9PUv3hFtRjQORjGE2PqA4hEtozvMuWxXb5b6RKiFT37-z7NoI4R85XmlTmZGQ6OUZ92bercG5DWEBTDVd3I_UYuNGzF20q6S2COP__Z-uqkhhw8nATd3k6GaIfCqxjcOih_juHBBoM1ON74vpKxCl1sJxnEYbZfkf6FO_xuGaJD7-J7OzD8tsSmFf4jR1TqZF******vQPpSZe6cYyplNuJoY05VLd8tLZMy_bR8Dmf1kArQaSquBzw2eDCfJAazjA4wTnkbccr38k7eM%3D" let resp = cli.idCardWithURL(url, "front"); console.log(resp); } catch (e) { console.log("error: ", e) } 其中,ocr.newClient("OCR_Test")中,“OCR_Test”为连接器的名称,“url”取值是图片的URL, “front”表示识别的是身份证正面。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 不用设置输入参数,直接单击测试窗口右上角的。 在输出参数页签,检查是否识别出身份证上文字信息。 识别出身份证上的文字信息,表明成功调用连接器。 单击脚本编辑器页面上方的,启用脚本。
  • 功能实现方法 准备工作。 需要拥有一个华为账号或一个可用于访问OBS的IAM用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已在华为OBS上,创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,请记录创建桶时选择的区域。 创建一个OBS连接器。 在应用设计器中,选择“集成”,单击“连接器”下的“连接器实例”。 在存储中,选择“OBS”,单击“+”,进入创建OBS页面。 输入基本信息并添加桶,单击“保存”。 图2 设置桶基本信息 图3 添加桶 表1 新建OBS连接器参数说明 参数 说明 示例 名称 新建OBS连接器的名称。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前模糊掉的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母,数字和单下划线组成,且不能以下划线结尾。 upload 访问密钥 配置用户的访问密钥AK。 1中获取的Access Key ID值 密钥 配置与访问密钥AK结合使用的私有访问密钥SK。 1中获取的Secret Access Key值 桶 设置存储桶所在的区域和桶名称。 区域选择“华北-北京四”,桶名称为“bing.testonly.1”,即1中提前创建的桶 创建标准页面,用于上传文件。 在应用设计器中,选择“界面”,单击页面后的“+”,新建一个标准页面。 在标准页面中,拖入一个“上传”组件。 图4 拖入上传组件 选中上传组件,存储选择“OBS”,并选择2中创建好的连接器。 图5 设置存储信息 定义文件的上传路径。 图6 设置上传路径 返回标准页面,单击,保存页面,保存成功后单击,预览效果。
  • 在脚本中,调用Rest Action Rest Action启用后,可在脚本中调用已创建的Rest Action。 参考登录AstroZero新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“逻辑”。 单击脚本后的,设置脚本名称,单击“添加”。 图10 新增一个空脚本 在脚本编辑器中,输入如下代码。 // Here's your code. import * as connector from "connector"; let client = connector.newClient("命名空间__test", "test1"); let result = client.invoke("命名空间_flapRefund", {}); console.log(result) 其中,“命名空间__test”表示连接器的名称,“test1”为创建Rest Service(自定义连接器)配置的认证信息名称,“命名空间__flapRefund”为创建并启用Rest Action中配置的动作名称。 单击脚本编辑器页面上方的,保存脚本。 脚本保存成功后,单击,运行脚本。 在页面底部“输入参数”页签中,输入请求参数,单击测试窗口右上角的。 在“日志”页签,查看打印的日志。
  • 创建并启用Rest Action 通过创建Rest Action,使得系统可以调用第三方提供的Rest协议的接口,实现第三方提供的业务功能。 在创建Rest Service(自定义连接器)中创建的Rest Service列表中,选择Rest Action所在的REST Service,在“动作”页签,单击“新建”。 参照表3,设置动作的基本信息,单击“下一步”。 图4 新建动作设置基本信息 参照表4,设置消息头入参,单击“下一步”。 如果此接口没有消息头输入参数,则不需要配置参数,请删除第一行参数。如果有消息头输入参数,且有多个,请单击。如果之前创建Rest Service时,有定义消息头参数,可选择“从模板中插入”,并定义输入参数的基本信息。消息头入参的参数说明请参见。 图5 消息头入参配置页面 参照表5,设置输入参数,单击“下一步”。 如果此接口没有输入参数,则不需要配置参数,删除第一行参数。如果有输入参数,且有多个,请单击,并定义输入参数的基本信息。 页面上方“消息体格式”参数使用说明:当方法为“PUT”或“POST”时,该参数才会显示。当第三方入参为数组类型或者非JSON类型时,需要将“输入消息体方式”设置为“值”形式。 例如,如果设置“消息体格式”为“键-值”,假设定义了输入参数A、B、C,调用时消息体中传递了参数 {A: 1,B:2, C:3} ,此时被调用方收到的参数信息是 {A: 1,B:2, C:3}。如果设置“输入消息体方式”为“值”,此时默认使用$in输入参数定义,调用时消息体中传递了参数{$in: [1,2,3] },此时被调用方收到的参数信息为[1,2,3]。 图6 输入参数配置页面 参照表6,设置输出参数,单击“保存”。 如果此接口没有输出参数,则不需要配置参数,请删除第一行参数。如果有输出参数,且有多个参数,请单击,并定义输出参数的基本信息。 页面上方“消息体格式”参数使用说明:设置“输出消息体方式”为“值”后,系统会引入一个通用的出参变量“$out”,将body的内容存到“$out”中,作为出参。 例如,若设置“消息体格式”为“键-值”,假设定义了输出参数A、B、C,调用后返回消息体中传递了参数 {A: 1,B:2, C:3} ,此时调用方收到的参数信息是 {A: 1,B:2, C:3};若设置“输出消息体方式”为“值”,此时默认使用$out输出参数定义,调用业务接口返回消息体中传递了参数[1,2,3],此时调用方收到的参数信息为{$out:[1,2,3]}。 图7 输出参数配置页面 在动作页签,单击该Rest Action所在行的,启用Rest Action。 单击“导出”,可导出zip包,zip包中包括该服务的所有Rest接口。单击“导入”,可通过导入yaml文件,导入Rest Action。
  • 终止(即取消)分段上传任务 功能描述 分段上传任务可以被取消,当一个分段上传任务被取消后,就不能再使用其“uploadId”做任何操作,已经上传段也会被删除。 采用分段上传方式上传文件过程中或上传文件失败后会在桶内产生段,这些段会占用存储空间,可以通过取消该分段上传任务来清理掉不需要的段,节约存储空间。 URI POST AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/abortupload?object=X&uploadId=Y 表9 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时命名的连接器实例名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 object 是 String 参数解释: 上传文件到桶里的全路径,包含文件名、文件类型、上传到桶里的路径。不携带路径时,表示上传到桶的根目录下。 示例:取值为“a/b/c/test.mp4”,表示将文件“test.mp4”上传到桶的“a/b/c”路径下。如果桶中不存在该路径,会创建该路径。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 uploadId 是 String 参数解释: 整个分段上传任务的标识,请从初始化分段上传任务的返回结果中获取该值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 请求参数 无 响应参数 表10 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 请求示例 已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,需要向该OBS桶的“a/b/c”路径下上传大文件。已有初始化分段上传任务和分段上传任务,标识“uploadId”为“0000017B76500F0662CABA7128913936”,调用如下请求,取消该分段上传任务。 POST https://AstroZero域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/abortupload?object=a/b/c/test3.mp4&uploadId=0000017B76500F0662CABA7128913936 响应示例 { "resCode": "0", "resMsg": "成功" }
  • 上传分段 功能介绍 初始化分段上传任务之后,可以根据指定的对象文件名和“uploadId”来分段上传数据。每一个上传的段都有一个标识它的号码,即分段号(partNumber,范围是1~10000)。对于同一个分段上传任务(即uploadId相同),分段号“partNumber”不但唯一标识这一段数据,也标识了这段数据在整个对象文件内的相对位置。如果使用同一个分段号上传了新的数据,那么存储服务端上已有的这个段号的数据将被覆盖。除了最后一个分段以外,其他分段大小必须大于5MB,最大值对于OBS、MINIO本身来说没有限制,通过AstroZero平台该接口调用时,所有分段最大值不超过100MB。每个分段不需要按顺序上传,甚至可以在不同进程、不同机器上上传,存储服务端会按照分段号排序组成最终对象。 URI POST AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/uploadpart?object=X&uploadId=Y&partNumber=Z 表4 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时命名的连接器实例名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 object 是 String 参数解释: 上传文件到桶里的全路径,包含文件名、文件类型、上传到桶里的路径。不携带路径时,表示上传到桶的根目录下 示例:取值为“a/b/c/test.mp4”,表示将文件“test.mp4”上传到桶的“a/b/c”路径下。如果桶中不存在该路径,会创建该路径。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 uploadId 是 String 参数解释: 整个分段上传任务的标识,从初始化分段上传任务的返回结果中获取该值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 partNumber 是 Number 参数解释: 分段号。 对于同一个分段上传任务(即uploadId相同),分段号“partNumber”不但唯一标识这一段数据,也标识了这段数据在整个对象文件内的相对位置。 约束限制: 不涉及。 取值范围: 1~10000。 默认取值: 不涉及。 请求参数 请求中的body类型,按照“application/octet-stream”格式上传文件分段内容。 响应参数 表5 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Object 参数解释: 返回分段任务对象,包含如下字段: ETag:文件分段的标识, 用于后续完成上传时使用。 partNumber:分段号,用于后续完成上传时使用。 请求示例 已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,需要向该OBS桶的“a/b/c”路径下上传大文件。已有初始化分段上传任务,标识“uploadId”为“0000017B761F112966C45D8FF0F75F13”,调用如下请求,创建分段上传任务,上传test.mp4,分段号为“1”。 POST https://AstroZero域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/uploadpart?object=a/b/c/test.mp4&uploadId=0000017B761F112966C45D8FF0F75F13&partNumber=1 在请求Body中设置“application/octet-stream”格式的object,即要上传的文件数据。 响应示例 { "resCode": "0", "resMsg": "成功", "result": { "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"", "partNumber": 1 } } 请记录下“ETag”和“partNumber”的值,后续完成上传时需要使用。
  • 完成上传合并段 功能介绍 所有分段上传完成后,需要调用完成上传接口,在存储服务端(如OBS)合并段生成最终对象文件。在执行完成上传操作时,需要提供所有有效的分段列表(包括分段号和分段ETag值)。AstroZero收到提交的分段列表后,会逐一验证每个段的有效性。当所有段验证通过后,将把这些分段组合成最终的对象。合并的分段任务可以是不连续的分段号。 完成上传任务后,“uploadId”就失效了,不能再用于终止(即取消)分段上传任务。 URI POST AstroZero域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/completeupload?object=X&uploadId=Y 表6 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时命名的连接器实例名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 object 是 String 参数解释: 上传文件到桶里的全路径,包含文件名、文件类型、上传到桶里的路径。不携带路径时,表示上传到桶的根目录下 示例:取值为“a/b/c/test.mp4”,表示将文件“test.mp4”上传到桶的“a/b/c”路径下。如果桶中不存在该路径,会创建该路径。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 uploadId 是 String 参数解释: 整个分段上传任务的标识,从初始化分段上传任务的返回结果中获取该值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 请求参数 数组类型,每个元素中包含如表7所示字段。 表7 请求参数说明 参数 是否必选 参数类型 描述 ETag 是 String 参数解释: 文件分段的标识,请从上传分段的返回结果中获取该值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 partNumber 是 String 参数解释: 分段号。 对于同一个分段上传任务(即uploadId相同),分段号“partNumber”不但唯一标识这一段数据,也标识了这段数据在整个对象文件内的相对位置,从上传分段的返回结果中获取该值。 约束限制: 不涉及。 取值范围: 1~10000。 默认取值: 不涉及。 响应参数 表8 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 请求示例 已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,需要向该OBS桶的“a/b/c”路径下上传大文件。已有初始化分段上传任务和两个分段上传任务,标识“uploadId”为“0000017B761F112966C45D8FF0F75F13”,调用如下请求,完成分段上传任务,合并所有分段生成最终对象文件。 POST https://AstroZero域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/completeupload?object=a/b/c/test.mp4&uploadId=0000017B761F112966C45D8FF0F75F13 [{ "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"", "partNumber": 1 }, { "ETag": "\"7dcad0c8a7398333ff25418bad511581\"", "partNumber": 2 }] 响应示例 { "resCode": "0", "resMsg": "成功" }