feat: 添加ota相关接口

This commit is contained in:
2026-03-24 17:31:04 +08:00
Unverified
parent 960b8df9b0
commit b9c92f0665
+61
View File
@@ -0,0 +1,61 @@
syntax = "proto3";
package laserweld.ota;
option csharp_namespace = "Laserweld.Protos.Ota";
// ===== Java / Android 必须的配置 =====
option java_multiple_files = true;
option java_package = "com.lxsoft.weld.grpc";
option java_outer_classname = "OtaProto";
import "common.proto";
// OTA 服务
// 当前只包含上传前文件信息登记和文件分片上传
service OtaService {
// 更新当前待上传文件的信息
// 成功后服务端允许开始 UploadPackage
rpc UpdateFileInfo(UpdateFileInfoRequest) returns (laserweld.common.Result);
// 上传 OTA 文件分片
// 客户端流式上传 服务端在流结束后返回最终结果
rpc UploadPackage(stream UploadPackageRequest) returns (laserweld.common.Result);
// 订阅上传状态
// 服务端在上传状态变化时主动推送
rpc SubscribeUploadStatus(SubscribeUploadStatusRequest) returns (stream UploadStatusUpdate);
// 开始升级
// 文件上传并校验通过后 由客户端显式触发升级
rpc StartUpgrade(StartUpgradeRequest) returns (laserweld.common.Result);
}
// 文件级信息
// 在真正上传分片前先登记当前文件的描述信息
message UpdateFileInfoRequest {
string file_name = 1; // 文件名
int64 file_size = 2; // 文件总字节数
int32 total_chunks = 3; // 文件总块数
string file_md5 = 4; // 文件整包 MD5
}
// 文件分片
// 每次流消息传一块
message UploadPackageRequest {
int32 chunk_index = 1; // 当前块序号 从 0 开始
int64 offset = 2; // 当前块在整文件中的起始偏移
bytes chunk_data = 3; // 当前块数据
}
// 上传状态订阅请求
message SubscribeUploadStatusRequest {}
// 上传状态更新
// status_code 由业务自行扩展定义
message UploadStatusUpdate {
int32 status_code = 1; // 上传状态码
string message = 2; // 状态说明
}
// 开始升级请求
message StartUpgradeRequest {}