流程图
kettle 面板图片
操作步骤
1、订阅数据源(kafka consumer)
2、抽取字段并转换key(JSON input)
3、判断img字段是否有值,有的话进行url转base64(JavaScript 代码)
// 获取输入字段的值
var imgUrl = pic1Url;
var imgBase64 = '';
var connection = null; // 声明连接对象
//获取当前时间
var createTime = new Date();
// 检查 imgUrl 字段是否为空
if (imgUrl === null || imgUrl === undefined || imgUrl.trim() === "") {
// 如果 imgUrl 字段为空,则添加常量字段
imgBase64 = "";
} else {
// 如果 imgUrl 字段不为空,则将 URL 转换为 Base64
try {
var url = new java.net.URL(imgUrl);
connection = url.openConnection(); // 打开连接
var inputStream = connection.getInputStream();
var outputStream = new java.io.ByteArrayOutputStream();
var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024); // 缓冲区大小
var bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead); // 将数据写入输出流
}
imgBase64 = org.apache.commons.codec.binary.Base64.encodeBase64String(outputStream.toByteArray());
inputStream.close(); // 关闭输入流
} catch (e) {
// 处理异常
if (connection !== null) {
connection.disconnect(); // 关闭连接
}
throw e; // 重新抛出异常
} finally {
if (connection !== null) {
connection.disconnect(); // 关闭连接
}
}
}
//生成id
var uuid = java.util.UUID.randomUUID().toString();
var uniqueId = Date.now() + '-' + Math.random().toString(36).substring(2, 15);
uniqueId;
// 将 imgBase64 设置到输出字段
imgBase64;
createTime;
4、添加部门code (add constants)
5、记录数据库(表输出)
6、将sysOrgCode跟base64加进去json,重新构造(JSON output、JSON input)
JSON output
‘
JSON input