旺小美录音上传
将本地录音文件上传到 OSS,然后自动注册到工牌设备系统。
上报流程
- 上传录音到 OSS
- 注册到工牌系统
步骤1: 上传录音到 OSS
接口信息
- URL:
https://alioss.wangxiaobao.com/minio/upload - Method: POST
- Content-Type: multipart/form-data
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | File | 是 | 录音文件 |
| group | String | 是 | 固定值: /martech/wangke/audio |
| name | String | 是 | 文件名,建议格式: 原文件名_时间戳.mp3 |
curl 示例
curl -X POST 'https://alioss.wangxiaobao.com/minio/upload' \
-H 'accept: application/json' \
-F "file=@/path/to/recording.mp3;type=audio/mpeg" \
-F 'group=/martech/wangke/audio' \
-F 'name=recording_1234567890.mp3'
响应示例
{
"code": 0,
"data": "https://s2.wangxiaobao.com/martech/wangke/audio/recording_1234567890.mp3",
"etag": "abc123"
}
步骤2: 注册到工牌系统
环境选择
| 环境 | URL | 默认 |
|---|---|---|
| 生产 | https://wangkeapp.intra.wangxiaobao.com/kafka/topics/iot_device_file/message |
✅ |
| 测试 | http://ai-voice-application.ai-voice.svc.cluster.test:8080/kafka/topics/iot_device_file_test/message |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file.fileSize | Long | 是 | 文件大小(字节) |
| file.recordTime | Long | 是 | 录音时间戳(毫秒) |
| file.recordUrl | String | 是 | OSS返回的URL |
| file.fileType | String | 是 | 固定值: AUDIO_COMPLETE |
| sn | String | 是 | 设备序列号 |
| type | String | 是 | 固定值: WORK_CARD_AUDIO |
curl 示例
curl -X POST 'https://wangkeapp.intra.wangxiaobao.com/kafka/topics/iot_device_file/message' \
-H 'Content-Type: application/json' \
-d '{
"file": {
"fileSize": 4365261,
"recordTime": 1734567890000,
"recordUrl": "https://s2.wangxiaobao.com/martech/wangke/audio/recording_1234567890.mp3",
"fileType": "AUDIO_COMPLETE"
},
"sn": "EXAMPLE_SN_001",
"type": "WORK_CARD_AUDIO"
}'
响应示例
{
"code": "0",
"msg": "success",
"data": "iot_device_file"
}
完整工作流
用户请求示例
- "上传录音 /path/to/recording.mp3,设备SN是EXAMPLE_SN_001"
- "把本地录音上报到工牌系统,测试环境"
- "工牌录音文件 recording.mp3,设备编号 EXAMPLE_SN_002"
执行步骤
-
获取文件信息
bash ls -l /path/to/recording.mp3 # 获取文件大小 -
上传到OSS
bash TIMESTAMP=$(date +%s) curl -X POST 'https://alioss.wangxiaobao.com/minio/upload' \ -F "file=@/path/to/recording.mp3;type=audio/mpeg" \ -F 'group=/martech/wangke/audio' \ -F "name=recording_${TIMESTAMP}.mp3" -
注册到工牌系统
bash RECORD_TIME=$(date +%s)000 # 毫秒时间戳 curl -X POST 'https://wangkeapp.intra.wangxiaobao.com/kafka/topics/iot_device_file/message' \ -H 'Content-Type: application/json' \ -d "{ \"file\": { \"fileSize\": 4365261, \"recordTime\": ${RECORD_TIME}, \"recordUrl\": \"https://s2.wangxiaobao.com/martech/wangke/audio/recording_${TIMESTAMP}.mp3\", \"fileType\": \"AUDIO_COMPLETE\" }, \"sn\": \"EXAMPLE_SN_001\", \"type\": \"WORK_CARD_AUDIO\" }"
环境切换
- 默认使用生产环境
- 用户明确提到"测试环境"、"test环境"时使用测试环境URL
- 示例: "上传到测试环境"、"用test环境"
错误处理
常见错误
-
OSS上传失败
- 检查文件路径是否正确
- 确认网络连接正常
- 查看响应中的错误信息 -
设备注册失败
- 检查SN格式是否正确
- 确认recordUrl是有效的OSS地址
- 查看工牌系统返回的具体错误 -
文件不存在
- 提示用户提供正确的文件路径
- 支持相对路径和绝对路径
版本上报
每次请求时,在响应中说明当前使用的是 wxm-record-upload v2.0.0,便于后续升级追踪。