模型转换Java快速集成
1. 获取接口信息
登录门户网站,获取接口信息。接口信息用于与轻量化引擎对接。
2. 生成签名信息
访问轻量化引擎数据服务接口时,需要将签名信息放在请求的Headers里面,用于接口校验。签名信息由接口信息生成,各个字段的含义及生成示例如下:
字段 | 必选 | 类型 | 描述 |
---|---|---|---|
timeStampData | 是 | String | 当前时间戳 |
partnerID | 是 | String | 接口信息中的“企业ID” |
apiKeyData | 否 | String | MD5 加密密钥 |
shaKeyData | 否 | String | SHA 加密密钥 |
apiKeyData 密钥与 shaKeyData 密钥必须存在一个。
时间戳 timeStampData 生成示例:
String timeStampData = System.currentTimeMillis()/1000 + "";
密钥生成公共方法类 MD5Utility.java :
密钥 apiKeyData 生成示例:
//partnerID 接口信息-企业ID
//partnerKey 接口信息-密钥
//timeStampData 上面生成的时间戳
String apiKeyData = Md5(partnerID + secretKey + timeStamp);
密钥 shaKeyData 生成示例:
//partnerID 接口信息-企业ID
//partnerKey 接口信息-密钥
//timeStampData 上面生成的时间戳
String apiKeyData = SHA256(partnerID + secretKey + timeStamp);
3. 上传模型文件
插入转换任务前,需要先将待转换的模型文件上传到轻量化服务平台。推荐使用MinIO上传。
说明:如果模型文件位于HTTP或HTTPS路径,且可被轻量化服务平台获取,则可以直接进入下一步插入转换任务。
3.1 使用MinIO上传
获取MinIO临时授权上传信息:
POST
[http://服务IP:8090]/nds_requests/common/GetPresignedUploadUrl
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"inputNdsFile": "202305101737093718/box.par",
"url": "http://xxx/202305101737093718/box.par?X-Amz-Algorithm..."
}
}
相关参数说明,请参考 API接口 中的1.1 临时授权接口。
临时授权路径使用PUT方式将文件上传到云文件服务中,前端上传示例如下:
//前端页面上传处理
let file = $('#fileSelect')[0].files[0];//选择文件
$.ajax({
url: url,
type: "put",
data: file,
async: true,
processData: false,
contentType: false,
error: function (xhr, status, error) {
},
success: function (result) {
},
});
3.2 使用FTP上传
获取FTP接口信息:
POST
[http://服务IP:8090]/nds_requests/common/GetFTPInfo
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"ftp": "ftp://118.31.117.19:21",
"ftpUserName": "e[ftp密钥]XVxxxx",
"ftpPassword": "e[ftp密钥]XVxxxx"
}
}
相关参数说明,请参考 API接口 中的1.2 FTP接口。
4. 插入转换任务
准备好模型文件后,可以将其插入转换任务,以便生成轻量化数据。
插入一条转换任务: POST
[http://服务IP:8090]/nds_requests/common/InsertTask
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"taskID": 998720
}
}
关于请求参数和返回参数的说明,请参考 API接口 中的2.1.1 单任务添加接口。
如果请求参数中包含 returnURL ,则任务处理完成后将对该路径进行回调,请参考 API接口 中的2.4 回调。
5. 查询转换结果
可通过接口主动查询任务状态,查看模型处理情况。
查询转换结果:
POST
[http://服务IP:8090]/nds_requests/common/QueryTask
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"status": 2,
"errorDescription": "OK",
"errorDetail": "OK",
"outputFiles": "145bf249-98e1-4a7e-8ba2-11a85800a82f.zip",
"outFilePathType": 0,
"outputNdsFiles": "aHR0cDovLzEwLjEyMi44Mi45Mjo5MDAwL3l1bmFwaS9lbnRlcnByaXNlLzgxMzg2MzgzMzI2MDQ1MjgxNjkzL2Rvd25sb2FkLzRmM2Q4MjZkLTIwMTQtNDRmMi1iMmU2LTZiOWVmOTBmZWQzMi56aXA/WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1USURCRUQwRTBZMTBENjA5OVYxSSUyRjIwMjQwMTE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDExNlQwMjEyNDNaJlgtQW16LUV4cGlyZXM9MTcyODAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZYLUFtei1TaWduYXR1cmU9YzVkNGYyZmIyMDQzNjRiMzU5MTczYzEwNTc2YTEwMzA1YjExYTNhZWEwYTQzNWUxYmY0OWVjYTg1OWI2YTgwNA=="
"errorType": 1,
"previewURL": "aHR0cHM6Ly9hcGkuM2RvcGVuLmNuL3ByZXZpZXcuaHRtbD9pdGVtQ29kZT02OEMwQTM3MUFFOTk3NUNGNkEzMTUyQzNERTczQzlGQw==",
"jsonURL": "aHR0cHM6Ly9taW5pby4zZG9wZW4uY24vM2RvcGVuL3RlbXBGaWxlL01vZGVsRmlsZS9OZXdkaW1jaGluYS8xNjgzNzEzOTQ2NjI3LzAvcHJvZHVjdERhdGEuanNvbg==",
"imgURL": "aHR0cHM6Ly9taW5pby4zZG9wZW4uY24vM2RvcGVuL3RlbXBGaWxlL01vZGVsRmlsZS9OZXdkaW1jaGluYS8xNjgzNzEzOTQ2NjI3L1RodW1ibmFpbC5wbmc="
}
}
关于请求参数和返回参数的说明,请参考 API接口 中的3.1 单任务查询接口。
6. 预览轻量化模型
将字段 previewURL(通过base64编码)解密后,获得轻量化模型预览地址。也可在门户网站,将轻量化模型文件下载到本地磁盘。集成Viewer组件后,通过浏览器预览。
