改良写入字段,减少使用者失误

This commit is contained in:
algotao
2025-12-16 17:19:06 +08:00
parent 9a892eb533
commit d4bf3297d4
7 changed files with 265 additions and 199 deletions

2
.gitignore vendored
View File

@@ -2,4 +2,4 @@ vendor/
*.out *.out
build/ build/
*.lua *.lua
*.bak *.bak

373
cmd.pb.go
View File

@@ -1172,11 +1172,17 @@ func (x *Write) GetWriteItems() []*WriteItem {
// WriteItem 写入命令 // WriteItem 写入命令
type WriteItem struct { type WriteItem struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
Userid string `protobuf:"bytes,1,opt,name=userid,proto3" json:"userid,omitempty"` // 用户ID Userid string `protobuf:"bytes,1,opt,name=userid,proto3" json:"userid,omitempty"` // 用户ID
WriteBytes *Bytes `protobuf:"bytes,2,opt,name=write_bytes,json=writeBytes,proto3" json:"write_bytes,omitempty"` // byte区域 // Deprecated: Marked as deprecated in cmd.proto.
WriteUint32S *Uint32S `protobuf:"bytes,3,opt,name=write_uint32s,json=writeUint32s,proto3" json:"write_uint32s,omitempty"` // uint32区域 WriteBytes *Bytes `protobuf:"bytes,2,opt,name=write_bytes,json=writeBytes,proto3" json:"write_bytes,omitempty"` // byte区域。!!!弃用请使用bytes_kv
WriteFlagsWithExpire *FlagsWithExpire `protobuf:"bytes,4,opt,name=write_flags_with_expire,json=writeFlagsWithExpire,proto3" json:"write_flags_with_expire,omitempty"` // 标志位区域 // Deprecated: Marked as deprecated in cmd.proto.
WriteUint32S *Uint32S `protobuf:"bytes,3,opt,name=write_uint32s,json=writeUint32s,proto3" json:"write_uint32s,omitempty"` // uint32区域。!!!弃用请使用uint32s_kv
// Deprecated: Marked as deprecated in cmd.proto.
WriteFlagsWithExpire *FlagsWithExpire `protobuf:"bytes,4,opt,name=write_flags_with_expire,json=writeFlagsWithExpire,proto3" json:"write_flags_with_expire,omitempty"` // 标志位区域。!!!弃用请使用flags_with_expire_kv
BytesKv map[uint32]uint32 `protobuf:"bytes,5,rep,name=bytes_kv,json=bytesKv,proto3" json:"bytes_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 写入bytekey为1-64索引值value为0-255数值。index/value超限会丢弃
Uint32SKv map[uint32]uint32 `protobuf:"bytes,6,rep,name=uint32s_kv,json=uint32sKv,proto3" json:"uint32s_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 写入uint32key为1-64索引值value为uint32数值。index超限会丢弃
FlagsWithExpireKv map[uint32]*FlagWithExpire `protobuf:"bytes,7,rep,name=flags_with_expire_kv,json=flagsWithExpireKv,proto3" json:"flags_with_expire_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 写入标志位key为1-64索引值index超限会丢弃
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -1218,6 +1224,7 @@ func (x *WriteItem) GetUserid() string {
return "" return ""
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *WriteItem) GetWriteBytes() *Bytes { func (x *WriteItem) GetWriteBytes() *Bytes {
if x != nil { if x != nil {
return x.WriteBytes return x.WriteBytes
@@ -1225,6 +1232,7 @@ func (x *WriteItem) GetWriteBytes() *Bytes {
return nil return nil
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *WriteItem) GetWriteUint32S() *Uint32S { func (x *WriteItem) GetWriteUint32S() *Uint32S {
if x != nil { if x != nil {
return x.WriteUint32S return x.WriteUint32S
@@ -1232,6 +1240,7 @@ func (x *WriteItem) GetWriteUint32S() *Uint32S {
return nil return nil
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *WriteItem) GetWriteFlagsWithExpire() *FlagsWithExpire { func (x *WriteItem) GetWriteFlagsWithExpire() *FlagsWithExpire {
if x != nil { if x != nil {
return x.WriteFlagsWithExpire return x.WriteFlagsWithExpire
@@ -1239,6 +1248,27 @@ func (x *WriteItem) GetWriteFlagsWithExpire() *FlagsWithExpire {
return nil return nil
} }
func (x *WriteItem) GetBytesKv() map[uint32]uint32 {
if x != nil {
return x.BytesKv
}
return nil
}
func (x *WriteItem) GetUint32SKv() map[uint32]uint32 {
if x != nil {
return x.Uint32SKv
}
return nil
}
func (x *WriteItem) GetFlagsWithExpireKv() map[uint32]*FlagWithExpire {
if x != nil {
return x.FlagsWithExpireKv
}
return nil
}
// Bytes 写入byte区域 // Bytes 写入byte区域
type Bytes struct { type Bytes struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
@@ -3471,7 +3501,7 @@ type ReadRes struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
SuccCmdCount uint32 `protobuf:"varint,1,opt,name=succ_cmd_count,json=succCmdCount,proto3" json:"succ_cmd_count,omitempty"` // 成功的命令数量 SuccCmdCount uint32 `protobuf:"varint,1,opt,name=succ_cmd_count,json=succCmdCount,proto3" json:"succ_cmd_count,omitempty"` // 成功的命令数量
FailCmdCount uint32 `protobuf:"varint,2,opt,name=fail_cmd_count,json=failCmdCount,proto3" json:"fail_cmd_count,omitempty"` // 失败的命令数量 FailCmdCount uint32 `protobuf:"varint,2,opt,name=fail_cmd_count,json=failCmdCount,proto3" json:"fail_cmd_count,omitempty"` // 失败的命令数量
CmdRes []*ValueItem `protobuf:"bytes,3,rep,name=cmd_res,json=cmdRes,proto3" json:"cmd_res,omitempty"` // 返回的命令 CmdRes []*ValueItem `protobuf:"bytes,3,rep,name=cmd_res,json=cmdRes,proto3" json:"cmd_res,omitempty"` // 返回的命令
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -3576,16 +3606,22 @@ func (x *WriteRes) GetFailedUserid() []string {
// ValueItem 读取命令返回内容 // ValueItem 读取命令返回内容
type ValueItem struct { type ValueItem struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
CmdIndex uint32 `protobuf:"varint,1,opt,name=cmd_index,json=cmdIndex,proto3" json:"cmd_index,omitempty"` // 命令索引 CmdIndex uint32 `protobuf:"varint,1,opt,name=cmd_index,json=cmdIndex,proto3" json:"cmd_index,omitempty"` // 命令索引
CmdCode CmdErrorCode `protobuf:"varint,2,opt,name=cmd_code,json=cmdCode,proto3,enum=saasapi.CmdErrorCode" json:"cmd_code,omitempty"` // 状态 CmdCode CmdErrorCode `protobuf:"varint,2,opt,name=cmd_code,json=cmdCode,proto3,enum=saasapi.CmdErrorCode" json:"cmd_code,omitempty"` // 状态
Bytes []byte `protobuf:"bytes,3,opt,name=bytes,proto3" json:"bytes,omitempty"` // byte区域 // Deprecated: Marked as deprecated in cmd.proto.
Uint32S []uint32 `protobuf:"varint,4,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"` // uint32区域 Bytes []byte `protobuf:"bytes,3,opt,name=bytes,proto3" json:"bytes,omitempty"` // byte区域。!!!弃用
FlagsWithExpire []*FlagWithExpire `protobuf:"bytes,5,rep,name=flags_with_expire,json=flagsWithExpire,proto3" json:"flags_with_expire,omitempty"` // 标志位区域 // Deprecated: Marked as deprecated in cmd.proto.
LastModifyTime uint32 `protobuf:"varint,6,opt,name=last_modify_time,json=lastModifyTime,proto3" json:"last_modify_time,omitempty"` // 最后修改时间 Uint32S []uint32 `protobuf:"varint,4,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"` // uint32区域。!!!弃用
Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` // 存储版本 // Deprecated: Marked as deprecated in cmd.proto.
unknownFields protoimpl.UnknownFields FlagsWithExpire []*FlagWithExpire `protobuf:"bytes,5,rep,name=flags_with_expire,json=flagsWithExpire,proto3" json:"flags_with_expire,omitempty"` // 标志位区域。!!!弃用
sizeCache protoimpl.SizeCache LastModifyTime uint32 `protobuf:"varint,6,opt,name=last_modify_time,json=lastModifyTime,proto3" json:"last_modify_time,omitempty"` // 最后修改时间
Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` // 存储版本
BytesKv map[uint32]uint32 `protobuf:"bytes,8,rep,name=bytes_kv,json=bytesKv,proto3" json:"bytes_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // byte区域
Uint32SKv map[uint32]uint32 `protobuf:"bytes,9,rep,name=uint32s_kv,json=uint32sKv,proto3" json:"uint32s_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // uint32区域
FlagsWithExpireKv map[uint32]*FlagWithExpire `protobuf:"bytes,10,rep,name=flags_with_expire_kv,json=flagsWithExpireKv,proto3" json:"flags_with_expire_kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 标志位区域
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
} }
func (x *ValueItem) Reset() { func (x *ValueItem) Reset() {
@@ -3632,6 +3668,7 @@ func (x *ValueItem) GetCmdCode() CmdErrorCode {
return CmdErrorCode_OK return CmdErrorCode_OK
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *ValueItem) GetBytes() []byte { func (x *ValueItem) GetBytes() []byte {
if x != nil { if x != nil {
return x.Bytes return x.Bytes
@@ -3639,6 +3676,7 @@ func (x *ValueItem) GetBytes() []byte {
return nil return nil
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *ValueItem) GetUint32S() []uint32 { func (x *ValueItem) GetUint32S() []uint32 {
if x != nil { if x != nil {
return x.Uint32S return x.Uint32S
@@ -3646,6 +3684,7 @@ func (x *ValueItem) GetUint32S() []uint32 {
return nil return nil
} }
// Deprecated: Marked as deprecated in cmd.proto.
func (x *ValueItem) GetFlagsWithExpire() []*FlagWithExpire { func (x *ValueItem) GetFlagsWithExpire() []*FlagWithExpire {
if x != nil { if x != nil {
return x.FlagsWithExpire return x.FlagsWithExpire
@@ -3667,6 +3706,27 @@ func (x *ValueItem) GetVersion() uint32 {
return 0 return 0
} }
func (x *ValueItem) GetBytesKv() map[uint32]uint32 {
if x != nil {
return x.BytesKv
}
return nil
}
func (x *ValueItem) GetUint32SKv() map[uint32]uint32 {
if x != nil {
return x.Uint32SKv
}
return nil
}
func (x *ValueItem) GetFlagsWithExpireKv() map[uint32]*FlagWithExpire {
if x != nil {
return x.FlagsWithExpireKv
}
return nil
}
// TaskListRes 任务列表返回 // TaskListRes 任务列表返回
type TaskListRes struct { type TaskListRes struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
@@ -5045,13 +5105,26 @@ const file_cmd_proto_rawDesc = "" +
"\x05appid\x18\x02 \x01(\tR\x05appid\x12+\n" + "\x05appid\x18\x02 \x01(\tR\x05appid\x12+\n" +
"\x12is_clear_all_first\x18\x03 \x01(\bR\x0fisClearAllFirst\x123\n" + "\x12is_clear_all_first\x18\x03 \x01(\bR\x0fisClearAllFirst\x123\n" +
"\vwrite_items\x18\x04 \x03(\v2\x12.saasapi.WriteItemR\n" + "\vwrite_items\x18\x04 \x03(\v2\x12.saasapi.WriteItemR\n" +
"writeItems\"\xdc\x01\n" + "writeItems\"\x9b\x05\n" +
"\tWriteItem\x12\x16\n" + "\tWriteItem\x12\x16\n" +
"\x06userid\x18\x01 \x01(\tR\x06userid\x12/\n" + "\x06userid\x18\x01 \x01(\tR\x06userid\x123\n" +
"\vwrite_bytes\x18\x02 \x01(\v2\x0e.saasapi.BytesR\n" + "\vwrite_bytes\x18\x02 \x01(\v2\x0e.saasapi.BytesB\x02\x18\x01R\n" +
"writeBytes\x125\n" + "writeBytes\x129\n" +
"\rwrite_uint32s\x18\x03 \x01(\v2\x10.saasapi.Uint32sR\fwriteUint32s\x12O\n" + "\rwrite_uint32s\x18\x03 \x01(\v2\x10.saasapi.Uint32sB\x02\x18\x01R\fwriteUint32s\x12S\n" +
"\x17write_flags_with_expire\x18\x04 \x01(\v2\x18.saasapi.FlagsWithExpireR\x14writeFlagsWithExpire\"6\n" + "\x17write_flags_with_expire\x18\x04 \x01(\v2\x18.saasapi.FlagsWithExpireB\x02\x18\x01R\x14writeFlagsWithExpire\x12:\n" +
"\bbytes_kv\x18\x05 \x03(\v2\x1f.saasapi.WriteItem.BytesKvEntryR\abytesKv\x12@\n" +
"\n" +
"uint32s_kv\x18\x06 \x03(\v2!.saasapi.WriteItem.Uint32sKvEntryR\tuint32sKv\x12Z\n" +
"\x14flags_with_expire_kv\x18\a \x03(\v2).saasapi.WriteItem.FlagsWithExpireKvEntryR\x11flagsWithExpireKv\x1a:\n" +
"\fBytesKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1a<\n" +
"\x0eUint32sKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1a]\n" +
"\x16FlagsWithExpireKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12-\n" +
"\x05value\x18\x02 \x01(\v2\x17.saasapi.FlagWithExpireR\x05value:\x028\x01\"6\n" +
"\x05Bytes\x12\x14\n" + "\x05Bytes\x12\x14\n" +
"\x05bytes\x18\x01 \x01(\fR\x05bytes\x12\x17\n" + "\x05bytes\x18\x01 \x01(\fR\x05bytes\x12\x17\n" +
"\aindex_1\x18\x02 \x01(\x04R\x06index1\"<\n" + "\aindex_1\x18\x02 \x01(\x04R\x06index1\"<\n" +
@@ -5217,15 +5290,29 @@ const file_cmd_proto_rawDesc = "" +
"\x0efail_cmd_count\x18\x02 \x01(\rR\ffailCmdCount\x12+\n" + "\x0efail_cmd_count\x18\x02 \x01(\rR\ffailCmdCount\x12+\n" +
"\acmd_res\x18\x03 \x03(\v2\x12.saasapi.ValueItemR\x06cmdRes\"/\n" + "\acmd_res\x18\x03 \x03(\v2\x12.saasapi.ValueItemR\x06cmdRes\"/\n" +
"\bWriteRes\x12#\n" + "\bWriteRes\x12#\n" +
"\rfailed_userid\x18\x03 \x03(\tR\ffailedUserid\"\x93\x02\n" + "\rfailed_userid\x18\x03 \x03(\tR\ffailedUserid\"\xd2\x05\n" +
"\tValueItem\x12\x1b\n" + "\tValueItem\x12\x1b\n" +
"\tcmd_index\x18\x01 \x01(\rR\bcmdIndex\x120\n" + "\tcmd_index\x18\x01 \x01(\rR\bcmdIndex\x120\n" +
"\bcmd_code\x18\x02 \x01(\x0e2\x15.saasapi.CmdErrorCodeR\acmdCode\x12\x14\n" + "\bcmd_code\x18\x02 \x01(\x0e2\x15.saasapi.CmdErrorCodeR\acmdCode\x12\x18\n" +
"\x05bytes\x18\x03 \x01(\fR\x05bytes\x12\x18\n" + "\x05bytes\x18\x03 \x01(\fB\x02\x18\x01R\x05bytes\x12\x1c\n" +
"\auint32s\x18\x04 \x03(\rR\auint32s\x12C\n" + "\auint32s\x18\x04 \x03(\rB\x02\x18\x01R\auint32s\x12G\n" +
"\x11flags_with_expire\x18\x05 \x03(\v2\x17.saasapi.FlagWithExpireR\x0fflagsWithExpire\x12(\n" + "\x11flags_with_expire\x18\x05 \x03(\v2\x17.saasapi.FlagWithExpireB\x02\x18\x01R\x0fflagsWithExpire\x12(\n" +
"\x10last_modify_time\x18\x06 \x01(\rR\x0elastModifyTime\x12\x18\n" + "\x10last_modify_time\x18\x06 \x01(\rR\x0elastModifyTime\x12\x18\n" +
"\aversion\x18\a \x01(\rR\aversion\"2\n" + "\aversion\x18\a \x01(\rR\aversion\x12:\n" +
"\bbytes_kv\x18\b \x03(\v2\x1f.saasapi.ValueItem.BytesKvEntryR\abytesKv\x12@\n" +
"\n" +
"uint32s_kv\x18\t \x03(\v2!.saasapi.ValueItem.Uint32sKvEntryR\tuint32sKv\x12Z\n" +
"\x14flags_with_expire_kv\x18\n" +
" \x03(\v2).saasapi.ValueItem.FlagsWithExpireKvEntryR\x11flagsWithExpireKv\x1a:\n" +
"\fBytesKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1a<\n" +
"\x0eUint32sKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1a]\n" +
"\x16FlagsWithExpireKvEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\rR\x03key\x12-\n" +
"\x05value\x18\x02 \x01(\v2\x17.saasapi.FlagWithExpireR\x05value:\x028\x01\"2\n" +
"\vTaskListRes\x12#\n" + "\vTaskListRes\x12#\n" +
"\x05tasks\x18\x01 \x03(\v2\r.saasapi.TaskR\x05tasks\"\xa7\x01\n" + "\x05tasks\x18\x01 \x03(\v2\r.saasapi.TaskR\x05tasks\"\xa7\x01\n" +
"\rTargetListRes\x12G\n" + "\rTargetListRes\x12G\n" +
@@ -5417,7 +5504,7 @@ func file_cmd_proto_rawDescGZIP() []byte {
} }
var file_cmd_proto_enumTypes = make([]protoimpl.EnumInfo, 7) var file_cmd_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_cmd_proto_msgTypes = make([]protoimpl.MessageInfo, 67) var file_cmd_proto_msgTypes = make([]protoimpl.MessageInfo, 73)
var file_cmd_proto_goTypes = []any{ var file_cmd_proto_goTypes = []any{
(BindType)(0), // 0: saasapi.BindType (BindType)(0), // 0: saasapi.BindType
(BindSourceType)(0), // 1: saasapi.BindSourceType (BindSourceType)(0), // 1: saasapi.BindSourceType
@@ -5490,114 +5577,128 @@ var file_cmd_proto_goTypes = []any{
(*ExpData)(nil), // 68: saasapi.ExpData (*ExpData)(nil), // 68: saasapi.ExpData
(*ExpBaseFields)(nil), // 69: saasapi.ExpBaseFields (*ExpBaseFields)(nil), // 69: saasapi.ExpBaseFields
(*ExpGrantListRes)(nil), // 70: saasapi.ExpGrantListRes (*ExpGrantListRes)(nil), // 70: saasapi.ExpGrantListRes
nil, // 71: saasapi.TargetListRes.TargetListEntry nil, // 71: saasapi.WriteItem.BytesKvEntry
nil, // 72: saasapi.ExpData.ExtFieldsEntry nil, // 72: saasapi.WriteItem.Uint32sKvEntry
nil, // 73: saasapi.ExpData.GroupEntry nil, // 73: saasapi.WriteItem.FlagsWithExpireKvEntry
nil, // 74: saasapi.ValueItem.BytesKvEntry
nil, // 75: saasapi.ValueItem.Uint32sKvEntry
nil, // 76: saasapi.ValueItem.FlagsWithExpireKvEntry
nil, // 77: saasapi.TargetListRes.TargetListEntry
nil, // 78: saasapi.ExpData.ExtFieldsEntry
nil, // 79: saasapi.ExpData.GroupEntry
} }
var file_cmd_proto_depIdxs = []int32{ var file_cmd_proto_depIdxs = []int32{
8, // 0: saasapi.SaasReq.info:type_name -> saasapi.Info 8, // 0: saasapi.SaasReq.info:type_name -> saasapi.Info
9, // 1: saasapi.SaasReq.read:type_name -> saasapi.Read 9, // 1: saasapi.SaasReq.read:type_name -> saasapi.Read
11, // 2: saasapi.SaasReq.write:type_name -> saasapi.Write 11, // 2: saasapi.SaasReq.write:type_name -> saasapi.Write
17, // 3: saasapi.SaasReq.column_write:type_name -> saasapi.ColumnWrite 17, // 3: saasapi.SaasReq.column_write:type_name -> saasapi.ColumnWrite
18, // 4: saasapi.SaasReq.task_create:type_name -> saasapi.Task 18, // 4: saasapi.SaasReq.task_create:type_name -> saasapi.Task
19, // 5: saasapi.SaasReq.task_list:type_name -> saasapi.TaskList 19, // 5: saasapi.SaasReq.task_list:type_name -> saasapi.TaskList
20, // 6: saasapi.SaasReq.task_run:type_name -> saasapi.TaskRun 20, // 6: saasapi.SaasReq.task_run:type_name -> saasapi.TaskRun
21, // 7: saasapi.SaasReq.task_delete:type_name -> saasapi.TaskDelete 21, // 7: saasapi.SaasReq.task_delete:type_name -> saasapi.TaskDelete
22, // 8: saasapi.SaasReq.task_info:type_name -> saasapi.TaskInfo 22, // 8: saasapi.SaasReq.task_info:type_name -> saasapi.TaskInfo
25, // 9: saasapi.SaasReq.target_list:type_name -> saasapi.TargetList 25, // 9: saasapi.SaasReq.target_list:type_name -> saasapi.TargetList
26, // 10: saasapi.SaasReq.target_create:type_name -> saasapi.TargetCreate 26, // 10: saasapi.SaasReq.target_create:type_name -> saasapi.TargetCreate
27, // 11: saasapi.SaasReq.target_delete:type_name -> saasapi.TargetDelete 27, // 11: saasapi.SaasReq.target_delete:type_name -> saasapi.TargetDelete
28, // 12: saasapi.SaasReq.bind_set:type_name -> saasapi.BindSet 28, // 12: saasapi.SaasReq.bind_set:type_name -> saasapi.BindSet
29, // 13: saasapi.SaasReq.bind_delete:type_name -> saasapi.BindDelete 29, // 13: saasapi.SaasReq.bind_delete:type_name -> saasapi.BindDelete
30, // 14: saasapi.SaasReq.grant_list:type_name -> saasapi.GrantList 30, // 14: saasapi.SaasReq.grant_list:type_name -> saasapi.GrantList
31, // 15: saasapi.SaasReq.grant_add:type_name -> saasapi.Grant 31, // 15: saasapi.SaasReq.grant_add:type_name -> saasapi.Grant
31, // 16: saasapi.SaasReq.grant_delete:type_name -> saasapi.Grant 31, // 16: saasapi.SaasReq.grant_delete:type_name -> saasapi.Grant
32, // 17: saasapi.SaasReq.script_run:type_name -> saasapi.ScriptRun 32, // 17: saasapi.SaasReq.script_run:type_name -> saasapi.ScriptRun
33, // 18: saasapi.SaasReq.script_create:type_name -> saasapi.ScriptCreate 33, // 18: saasapi.SaasReq.script_create:type_name -> saasapi.ScriptCreate
34, // 19: saasapi.SaasReq.script_list:type_name -> saasapi.ScriptList 34, // 19: saasapi.SaasReq.script_list:type_name -> saasapi.ScriptList
35, // 20: saasapi.SaasReq.script_delete:type_name -> saasapi.ScriptDelete 35, // 20: saasapi.SaasReq.script_delete:type_name -> saasapi.ScriptDelete
36, // 21: saasapi.SaasReq.script_get:type_name -> saasapi.ScriptGet 36, // 21: saasapi.SaasReq.script_get:type_name -> saasapi.ScriptGet
37, // 22: saasapi.SaasReq.script_use:type_name -> saasapi.ScriptUse 37, // 22: saasapi.SaasReq.script_use:type_name -> saasapi.ScriptUse
38, // 23: saasapi.SaasReq.exp_list:type_name -> saasapi.ExpList 38, // 23: saasapi.SaasReq.exp_list:type_name -> saasapi.ExpList
39, // 24: saasapi.SaasReq.exp_get:type_name -> saasapi.ExpGet 39, // 24: saasapi.SaasReq.exp_get:type_name -> saasapi.ExpGet
40, // 25: saasapi.SaasReq.exp_grant_list:type_name -> saasapi.ExpGrantList 40, // 25: saasapi.SaasReq.exp_grant_list:type_name -> saasapi.ExpGrantList
41, // 26: saasapi.SaasReq.exp_grant_add:type_name -> saasapi.ExpGrant 41, // 26: saasapi.SaasReq.exp_grant_add:type_name -> saasapi.ExpGrant
41, // 27: saasapi.SaasReq.exp_grant_delete:type_name -> saasapi.ExpGrant 41, // 27: saasapi.SaasReq.exp_grant_delete:type_name -> saasapi.ExpGrant
10, // 28: saasapi.Read.read_items:type_name -> saasapi.ReadItem 10, // 28: saasapi.Read.read_items:type_name -> saasapi.ReadItem
12, // 29: saasapi.Write.write_items:type_name -> saasapi.WriteItem 12, // 29: saasapi.Write.write_items:type_name -> saasapi.WriteItem
13, // 30: saasapi.WriteItem.write_bytes:type_name -> saasapi.Bytes 13, // 30: saasapi.WriteItem.write_bytes:type_name -> saasapi.Bytes
14, // 31: saasapi.WriteItem.write_uint32s:type_name -> saasapi.Uint32s 14, // 31: saasapi.WriteItem.write_uint32s:type_name -> saasapi.Uint32s
15, // 32: saasapi.WriteItem.write_flags_with_expire:type_name -> saasapi.FlagsWithExpire 15, // 32: saasapi.WriteItem.write_flags_with_expire:type_name -> saasapi.FlagsWithExpire
16, // 33: saasapi.FlagsWithExpire.flags_with_expire:type_name -> saasapi.FlagWithExpire 71, // 33: saasapi.WriteItem.bytes_kv:type_name -> saasapi.WriteItem.BytesKvEntry
13, // 34: saasapi.ColumnWrite.write_bytes:type_name -> saasapi.Bytes 72, // 34: saasapi.WriteItem.uint32s_kv:type_name -> saasapi.WriteItem.Uint32sKvEntry
14, // 35: saasapi.ColumnWrite.write_uint32s:type_name -> saasapi.Uint32s 73, // 35: saasapi.WriteItem.flags_with_expire_kv:type_name -> saasapi.WriteItem.FlagsWithExpireKvEntry
15, // 36: saasapi.ColumnWrite.write_flags_with_expire:type_name -> saasapi.FlagsWithExpire 16, // 36: saasapi.FlagsWithExpire.flags_with_expire:type_name -> saasapi.FlagWithExpire
23, // 37: saasapi.Task.task_file_infos:type_name -> saasapi.FileInfo 13, // 37: saasapi.ColumnWrite.write_bytes:type_name -> saasapi.Bytes
4, // 38: saasapi.Task.status:type_name -> saasapi.TaskStatus 14, // 38: saasapi.ColumnWrite.write_uint32s:type_name -> saasapi.Uint32s
4, // 39: saasapi.TaskList.status_filter:type_name -> saasapi.TaskStatus 15, // 39: saasapi.ColumnWrite.write_flags_with_expire:type_name -> saasapi.FlagsWithExpire
24, // 40: saasapi.FileInfo.file_blocks:type_name -> saasapi.FileBlock 23, // 40: saasapi.Task.task_file_infos:type_name -> saasapi.FileInfo
53, // 41: saasapi.BindSet.binds:type_name -> saasapi.Bind 4, // 41: saasapi.Task.status:type_name -> saasapi.TaskStatus
53, // 42: saasapi.BindDelete.binds:type_name -> saasapi.Bind 4, // 42: saasapi.TaskList.status_filter:type_name -> saasapi.TaskStatus
5, // 43: saasapi.ScriptRun.os:type_name -> saasapi.OS 24, // 43: saasapi.FileInfo.file_blocks:type_name -> saasapi.FileBlock
2, // 44: saasapi.SaasRes.code:type_name -> saasapi.ErrorCode 53, // 44: saasapi.BindSet.binds:type_name -> saasapi.Bind
44, // 45: saasapi.SaasRes.info_res:type_name -> saasapi.InfoRes 53, // 45: saasapi.BindDelete.binds:type_name -> saasapi.Bind
45, // 46: saasapi.SaasRes.read_res:type_name -> saasapi.ReadRes 5, // 46: saasapi.ScriptRun.os:type_name -> saasapi.OS
46, // 47: saasapi.SaasRes.write_res:type_name -> saasapi.WriteRes 2, // 47: saasapi.SaasRes.code:type_name -> saasapi.ErrorCode
18, // 48: saasapi.SaasRes.task_create_res:type_name -> saasapi.Task 44, // 48: saasapi.SaasRes.info_res:type_name -> saasapi.InfoRes
48, // 49: saasapi.SaasRes.task_list_res:type_name -> saasapi.TaskListRes 45, // 49: saasapi.SaasRes.read_res:type_name -> saasapi.ReadRes
18, // 50: saasapi.SaasRes.task_run_res:type_name -> saasapi.Task 46, // 50: saasapi.SaasRes.write_res:type_name -> saasapi.WriteRes
18, // 51: saasapi.SaasRes.task_delete_res:type_name -> saasapi.Task 18, // 51: saasapi.SaasRes.task_create_res:type_name -> saasapi.Task
18, // 52: saasapi.SaasRes.task_info_res:type_name -> saasapi.Task 48, // 52: saasapi.SaasRes.task_list_res:type_name -> saasapi.TaskListRes
49, // 53: saasapi.SaasRes.target_list_res:type_name -> saasapi.TargetListRes 18, // 53: saasapi.SaasRes.task_run_res:type_name -> saasapi.Task
50, // 54: saasapi.SaasRes.target_create_res:type_name -> saasapi.TargetCreateRes 18, // 54: saasapi.SaasRes.task_delete_res:type_name -> saasapi.Task
51, // 55: saasapi.SaasRes.target_delete_res:type_name -> saasapi.TargetDeleteRes 18, // 55: saasapi.SaasRes.task_info_res:type_name -> saasapi.Task
54, // 56: saasapi.SaasRes.bind_set_res:type_name -> saasapi.BindSetRes 49, // 56: saasapi.SaasRes.target_list_res:type_name -> saasapi.TargetListRes
55, // 57: saasapi.SaasRes.bind_delete_res:type_name -> saasapi.BindDeleteRes 50, // 57: saasapi.SaasRes.target_create_res:type_name -> saasapi.TargetCreateRes
57, // 58: saasapi.SaasRes.grant_list_res:type_name -> saasapi.GrantListRes 51, // 58: saasapi.SaasRes.target_delete_res:type_name -> saasapi.TargetDeleteRes
31, // 59: saasapi.SaasRes.grant_add_res:type_name -> saasapi.Grant 54, // 59: saasapi.SaasRes.bind_set_res:type_name -> saasapi.BindSetRes
31, // 60: saasapi.SaasRes.grant_delete_res:type_name -> saasapi.Grant 55, // 60: saasapi.SaasRes.bind_delete_res:type_name -> saasapi.BindDeleteRes
58, // 61: saasapi.SaasRes.script_run_res:type_name -> saasapi.ScriptRunRes 57, // 61: saasapi.SaasRes.grant_list_res:type_name -> saasapi.GrantListRes
60, // 62: saasapi.SaasRes.script_create_res:type_name -> saasapi.ScriptCreateRes 31, // 62: saasapi.SaasRes.grant_add_res:type_name -> saasapi.Grant
61, // 63: saasapi.SaasRes.script_list_res:type_name -> saasapi.ScriptListRes 31, // 63: saasapi.SaasRes.grant_delete_res:type_name -> saasapi.Grant
63, // 64: saasapi.SaasRes.script_delete_res:type_name -> saasapi.ScriptDeleteRes 58, // 64: saasapi.SaasRes.script_run_res:type_name -> saasapi.ScriptRunRes
62, // 65: saasapi.SaasRes.script_get_res:type_name -> saasapi.ScriptGetRes 60, // 65: saasapi.SaasRes.script_create_res:type_name -> saasapi.ScriptCreateRes
64, // 66: saasapi.SaasRes.script_use_res:type_name -> saasapi.ScriptUseRes 61, // 66: saasapi.SaasRes.script_list_res:type_name -> saasapi.ScriptListRes
65, // 67: saasapi.SaasRes.exp_list_res:type_name -> saasapi.ExpListRes 63, // 67: saasapi.SaasRes.script_delete_res:type_name -> saasapi.ScriptDeleteRes
67, // 68: saasapi.SaasRes.exp_get_res:type_name -> saasapi.ExpGetRes 62, // 68: saasapi.SaasRes.script_get_res:type_name -> saasapi.ScriptGetRes
70, // 69: saasapi.SaasRes.exp_grant_list_res:type_name -> saasapi.ExpGrantListRes 64, // 69: saasapi.SaasRes.script_use_res:type_name -> saasapi.ScriptUseRes
41, // 70: saasapi.SaasRes.exp_grant_add_res:type_name -> saasapi.ExpGrant 65, // 70: saasapi.SaasRes.exp_list_res:type_name -> saasapi.ExpListRes
41, // 71: saasapi.SaasRes.exp_grant_delete_res:type_name -> saasapi.ExpGrant 67, // 71: saasapi.SaasRes.exp_get_res:type_name -> saasapi.ExpGetRes
43, // 72: saasapi.InfoRes.dataspace:type_name -> saasapi.DataSpace 70, // 72: saasapi.SaasRes.exp_grant_list_res:type_name -> saasapi.ExpGrantListRes
47, // 73: saasapi.ReadRes.cmd_res:type_name -> saasapi.ValueItem 41, // 73: saasapi.SaasRes.exp_grant_add_res:type_name -> saasapi.ExpGrant
3, // 74: saasapi.ValueItem.cmd_code:type_name -> saasapi.CmdErrorCode 41, // 74: saasapi.SaasRes.exp_grant_delete_res:type_name -> saasapi.ExpGrant
16, // 75: saasapi.ValueItem.flags_with_expire:type_name -> saasapi.FlagWithExpire 43, // 75: saasapi.InfoRes.dataspace:type_name -> saasapi.DataSpace
18, // 76: saasapi.TaskListRes.tasks:type_name -> saasapi.Task 47, // 76: saasapi.ReadRes.cmd_res:type_name -> saasapi.ValueItem
71, // 77: saasapi.TargetListRes.target_list:type_name -> saasapi.TargetListRes.TargetListEntry 3, // 77: saasapi.ValueItem.cmd_code:type_name -> saasapi.CmdErrorCode
53, // 78: saasapi.Binds.binds:type_name -> saasapi.Bind 16, // 78: saasapi.ValueItem.flags_with_expire:type_name -> saasapi.FlagWithExpire
0, // 79: saasapi.Bind.bind_type:type_name -> saasapi.BindType 74, // 79: saasapi.ValueItem.bytes_kv:type_name -> saasapi.ValueItem.BytesKvEntry
1, // 80: saasapi.Bind.bind_source:type_name -> saasapi.BindSourceType 75, // 80: saasapi.ValueItem.uint32s_kv:type_name -> saasapi.ValueItem.Uint32sKvEntry
56, // 81: saasapi.BindSetRes.errors:type_name -> saasapi.BindError 76, // 81: saasapi.ValueItem.flags_with_expire_kv:type_name -> saasapi.ValueItem.FlagsWithExpireKvEntry
56, // 82: saasapi.BindDeleteRes.errors:type_name -> saasapi.BindError 18, // 82: saasapi.TaskListRes.tasks:type_name -> saasapi.Task
31, // 83: saasapi.GrantListRes.from:type_name -> saasapi.Grant 77, // 83: saasapi.TargetListRes.target_list:type_name -> saasapi.TargetListRes.TargetListEntry
31, // 84: saasapi.GrantListRes.to:type_name -> saasapi.Grant 53, // 84: saasapi.Binds.binds:type_name -> saasapi.Bind
59, // 85: saasapi.ScriptCreateRes.script_info:type_name -> saasapi.ScriptInfo 0, // 85: saasapi.Bind.bind_type:type_name -> saasapi.BindType
59, // 86: saasapi.ScriptListRes.script_info:type_name -> saasapi.ScriptInfo 1, // 86: saasapi.Bind.bind_source:type_name -> saasapi.BindSourceType
59, // 87: saasapi.ScriptGetRes.script_info:type_name -> saasapi.ScriptInfo 56, // 87: saasapi.BindSetRes.errors:type_name -> saasapi.BindError
59, // 88: saasapi.ScriptDeleteRes.script_info:type_name -> saasapi.ScriptInfo 56, // 88: saasapi.BindDeleteRes.errors:type_name -> saasapi.BindError
59, // 89: saasapi.ScriptUseRes.script_info:type_name -> saasapi.ScriptInfo 31, // 89: saasapi.GrantListRes.from:type_name -> saasapi.Grant
66, // 90: saasapi.ExpListRes.buckets:type_name -> saasapi.ExpBucket 31, // 90: saasapi.GrantListRes.to:type_name -> saasapi.Grant
68, // 91: saasapi.ExpGetRes.exp_data:type_name -> saasapi.ExpData 59, // 91: saasapi.ScriptCreateRes.script_info:type_name -> saasapi.ScriptInfo
69, // 92: saasapi.ExpData.base_fields:type_name -> saasapi.ExpBaseFields 59, // 92: saasapi.ScriptListRes.script_info:type_name -> saasapi.ScriptInfo
72, // 93: saasapi.ExpData.ext_fields:type_name -> saasapi.ExpData.ExtFieldsEntry 59, // 93: saasapi.ScriptGetRes.script_info:type_name -> saasapi.ScriptInfo
73, // 94: saasapi.ExpData.group:type_name -> saasapi.ExpData.GroupEntry 59, // 94: saasapi.ScriptDeleteRes.script_info:type_name -> saasapi.ScriptInfo
41, // 95: saasapi.ExpGrantListRes.from:type_name -> saasapi.ExpGrant 59, // 95: saasapi.ScriptUseRes.script_info:type_name -> saasapi.ScriptInfo
41, // 96: saasapi.ExpGrantListRes.to:type_name -> saasapi.ExpGrant 66, // 96: saasapi.ExpListRes.buckets:type_name -> saasapi.ExpBucket
52, // 97: saasapi.TargetListRes.TargetListEntry.value:type_name -> saasapi.Binds 68, // 97: saasapi.ExpGetRes.exp_data:type_name -> saasapi.ExpData
98, // [98:98] is the sub-list for method output_type 69, // 98: saasapi.ExpData.base_fields:type_name -> saasapi.ExpBaseFields
98, // [98:98] is the sub-list for method input_type 78, // 99: saasapi.ExpData.ext_fields:type_name -> saasapi.ExpData.ExtFieldsEntry
98, // [98:98] is the sub-list for extension type_name 79, // 100: saasapi.ExpData.group:type_name -> saasapi.ExpData.GroupEntry
98, // [98:98] is the sub-list for extension extendee 41, // 101: saasapi.ExpGrantListRes.from:type_name -> saasapi.ExpGrant
0, // [0:98] is the sub-list for field type_name 41, // 102: saasapi.ExpGrantListRes.to:type_name -> saasapi.ExpGrant
16, // 103: saasapi.WriteItem.FlagsWithExpireKvEntry.value:type_name -> saasapi.FlagWithExpire
16, // 104: saasapi.ValueItem.FlagsWithExpireKvEntry.value:type_name -> saasapi.FlagWithExpire
52, // 105: saasapi.TargetListRes.TargetListEntry.value:type_name -> saasapi.Binds
106, // [106:106] is the sub-list for method output_type
106, // [106:106] is the sub-list for method input_type
106, // [106:106] is the sub-list for extension type_name
106, // [106:106] is the sub-list for extension extendee
0, // [0:106] is the sub-list for field type_name
} }
func init() { file_cmd_proto_init() } func init() { file_cmd_proto_init() }
@@ -5670,7 +5771,7 @@ func file_cmd_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_cmd_proto_rawDesc), len(file_cmd_proto_rawDesc)), RawDescriptor: unsafe.Slice(unsafe.StringData(file_cmd_proto_rawDesc), len(file_cmd_proto_rawDesc)),
NumEnums: 7, NumEnums: 7,
NumMessages: 67, NumMessages: 73,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@@ -73,21 +73,24 @@ message Write {
// WriteItem 写入命令 // WriteItem 写入命令
message WriteItem { message WriteItem {
string userid = 1; // 用户ID string userid = 1; // 用户ID
Bytes write_bytes = 2; // byte区域 Bytes write_bytes = 2 [deprecated = true]; // byte区域。!!!弃用请使用bytes_kv
Uint32s write_uint32s = 3; // uint32区域 Uint32s write_uint32s = 3 [deprecated = true]; // uint32区域。!!!弃用请使用uint32s_kv
FlagsWithExpire write_flags_with_expire = 4; // 标志位区域 FlagsWithExpire write_flags_with_expire = 4 [deprecated = true]; // 标志位区域。!!!弃用请使用flags_with_expire_kv
map<uint32, uint32> bytes_kv = 5; // 写入bytekey为1-64索引值value为0-255数值。index/value超限会丢弃
map<uint32, uint32> uint32s_kv = 6; // 写入uint32key为1-64索引值value为uint32数值。index超限会丢弃
map<uint32, FlagWithExpire> flags_with_expire_kv = 7; // 写入标志位key为1-64索引值index超限会丢弃
} }
// Bytes 写入byte区域 // Bytes 写入byte区域
message Bytes { message Bytes {
bytes bytes = 1; // 写入的byte bytes bytes = 1 ; // 写入的byte
uint64 index_1 = 2; // 写入byte的索引值(0..63) uint64 index_1 = 2 ; // 写入byte的索引值(0..63)
} }
// Uint32s 写入uint32区域 // Uint32s 写入uint32区域
message Uint32s { message Uint32s {
repeated uint32 uint32s = 1; // 写入的uint32 repeated uint32 uint32s = 1; // 写入的uint32
uint64 index_1 = 2; // 写入uint32的索引值(0..7) 最多 8 个 uint64 index_1 = 2; // 写入uint32的索引值(0..7) 最多 8 个
} }
// FlagsWithExpire 写入标志位区域 // FlagsWithExpire 写入标志位区域
@@ -330,7 +333,7 @@ message InfoRes {
message ReadRes { message ReadRes {
uint32 succ_cmd_count = 1; // 成功的命令数量 uint32 succ_cmd_count = 1; // 成功的命令数量
uint32 fail_cmd_count = 2; // 失败的命令数量 uint32 fail_cmd_count = 2; // 失败的命令数量
repeated ValueItem cmd_res = 3; // 返回的命令 repeated ValueItem cmd_res = 3 ; // 返回的命令
} }
// WriteRes 写记录返回 // WriteRes 写记录返回
@@ -344,11 +347,14 @@ message WriteRes {
message ValueItem { message ValueItem {
uint32 cmd_index = 1; // 命令索引 uint32 cmd_index = 1; // 命令索引
CmdErrorCode cmd_code = 2; // 状态 CmdErrorCode cmd_code = 2; // 状态
bytes bytes = 3; // byte区域 bytes bytes = 3 [deprecated = true]; // byte区域。!!!弃用
repeated uint32 uint32s = 4; // uint32区域 repeated uint32 uint32s = 4 [deprecated = true]; // uint32区域。!!!弃用
repeated FlagWithExpire flags_with_expire = 5; // 标志位区域 repeated FlagWithExpire flags_with_expire = 5 [deprecated = true]; // 标志位区域。!!!弃用
uint32 last_modify_time = 6; // 最后修改时间 uint32 last_modify_time = 6; // 最后修改时间
uint32 version = 7; // 存储版本 uint32 version = 7; // 存储版本
map<uint32, uint32> bytes_kv = 8; // byte区域
map<uint32, uint32> uint32s_kv = 9; // uint32区域
map<uint32, FlagWithExpire> flags_with_expire_kv = 10; // 标志位区域
} }
// TaskListRes 任务列表返回 // TaskListRes 任务列表返回

View File

@@ -279,14 +279,12 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
} }
writeItem = &saasapi.WriteItem{ writeItem = &saasapi.WriteItem{
Userid: userid, Userid: userid,
BytesKv: map[uint32]uint32{},
Uint32SKv: map[uint32]uint32{},
FlagsWithExpireKv: map[uint32]*saasapi.FlagWithExpire{},
} }
// 临时存储按index排序后再写入
u8Map := make(map[uint64]uint8)
u32Map := make(map[uint64]uint32)
flagMap := make(map[uint64]*saasapi.FlagWithExpire)
for key, value := range q { for key, value := range q {
parts := strings.Split(strings.ToLower(key), ".") parts := strings.Split(strings.ToLower(key), ".")
if len(parts) == 2 { if len(parts) == 2 {
@@ -309,9 +307,7 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
return return
} }
if _, exists := u8Map[index]; !exists { writeItem.BytesKv[uint32(index)] = uint32(nValue)
u8Map[index] = uint8(nValue)
}
case "u32": case "u32":
index, err := strconv.ParseUint(parts[1], 10, 8) index, err := strconv.ParseUint(parts[1], 10, 8)
@@ -330,9 +326,7 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
return return
} }
if _, exists := u32Map[index]; !exists { writeItem.Uint32SKv[uint32(index)] = uint32(nValue)
u32Map[index] = uint32(nValue)
}
case "flag": case "flag":
index, err := strconv.ParseUint(parts[1], 10, 8) index, err := strconv.ParseUint(parts[1], 10, 8)
@@ -345,10 +339,6 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
return return
} }
if _, exists := flagMap[index]; exists {
continue
}
flag := &saasapi.FlagWithExpire{} flag := &saasapi.FlagWithExpire{}
switch strings.ToLower(value[0]) { switch strings.ToLower(value[0]) {
case "true": case "true":
@@ -379,40 +369,7 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
} }
} }
flagMap[index] = flag writeItem.FlagsWithExpireKv[uint32(index)] = flag
}
}
}
// 按index顺序写入u8
if len(u8Map) > 0 {
writeItem.WriteBytes = &saasapi.Bytes{}
for i := uint64(1); i <= uint64(saasapi.MAX_U8); i++ {
if v, exists := u8Map[i]; exists {
writeItem.WriteBytes.Bytes = append(writeItem.WriteBytes.Bytes, v)
writeItem.WriteBytes.Index_1 |= 1 << (i - 1)
}
}
}
// 按index顺序写入u32
if len(u32Map) > 0 {
writeItem.WriteUint32S = &saasapi.Uint32S{}
for i := uint64(1); i <= uint64(saasapi.MAX_U32); i++ {
if v, exists := u32Map[i]; exists {
writeItem.WriteUint32S.Uint32S = append(writeItem.WriteUint32S.Uint32S, v)
writeItem.WriteUint32S.Index_1 |= 1 << (i - 1)
}
}
}
// 按index顺序写入flag
if len(flagMap) > 0 {
writeItem.WriteFlagsWithExpire = &saasapi.FlagsWithExpire{}
for i := uint64(1); i <= uint64(saasapi.MAX_FLAG); i++ {
if v, exists := flagMap[i]; exists {
writeItem.WriteFlagsWithExpire.FlagsWithExpire = append(writeItem.WriteFlagsWithExpire.FlagsWithExpire, v)
writeItem.WriteFlagsWithExpire.Index_1 |= 1 << (i - 1)
} }
} }
} }

1
datasample/test.txt Normal file
View File

@@ -0,0 +1 @@
{"userid":"test_user", "writeBytes": {"bytes": "AQ==", "index1": "1"}, "writeUint32s": {"uint32s": [112547657,28270208],"index1": "3"}}

1
datasample/testv2.txt Normal file
View File

@@ -0,0 +1 @@
{"userid":"test_user", "bytesKv": {"1": 1,"2": 2,"3": 3,"4": 4,"5": 50,"6": 6,"40": 40,"55": 55,"100": 100}, "uint32sKv": {"1": 100000,"2": 200000,"3": 300000,"4": 400000,"5": 500000,"6": 600000,"55": 5500000,"100": 10000000},"flagsWithExpireKv": {"1": {"flag": true,"expire": 1865854386},"2": {"flag": false,"expire": 1865854386}, "64": {"expire": 1765854386}}}

View File

@@ -4,7 +4,7 @@ set -e
docker buildx build --platform linux/amd64 \ docker buildx build --platform linux/amd64 \
-t rta-docker.pkg.coding.net/public/docker/saastool:latest \ -t rta-docker.pkg.coding.net/public/docker/saastool:latest \
-t rta-docker.pkg.coding.net/public/docker/saastool:2025121210 \ -t rta-docker.pkg.coding.net/public/docker/saastool:2025121617 \
-o type=registry \ -o type=registry \
-f saastool.Dockerfile \ -f saastool.Dockerfile \
../ ; ../ ;