mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2026-02-06 20:45:39 +08:00
节点组合配置时服务间可以共用证书数据
This commit is contained in:
37
pkg/serverconfigs/shared/data_map.go
Normal file
37
pkg/serverconfigs/shared/data_map.go
Normal file
@@ -0,0 +1,37 @@
|
||||
// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package shared
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/md5"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var dataMapPrefix = []byte("GOEDGE_DATA_MAP:")
|
||||
|
||||
// DataMap 二进制数据共享Map
|
||||
// 用来减少相同数据占用的空间和内存
|
||||
type DataMap struct {
|
||||
Map map[string][]byte
|
||||
}
|
||||
|
||||
// NewDataMap 构建对象
|
||||
func NewDataMap() *DataMap {
|
||||
return &DataMap{Map: map[string][]byte{}}
|
||||
}
|
||||
|
||||
// Put 放入数据
|
||||
func (this *DataMap) Put(data []byte) (keyData []byte) {
|
||||
var key = string(dataMapPrefix) + fmt.Sprintf("%x", md5.Sum(data))
|
||||
this.Map[key] = data
|
||||
return []byte(key)
|
||||
}
|
||||
|
||||
// Read 读取数据
|
||||
func (this *DataMap) Read(key []byte) []byte {
|
||||
if bytes.HasPrefix(key, dataMapPrefix) {
|
||||
return this.Map[string(key)]
|
||||
}
|
||||
return key
|
||||
}
|
||||
Reference in New Issue
Block a user