mirror of https://github.com/milvus-io/milvus.git
44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
package util
|
|
|
|
import (
|
|
"path"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
|
|
"github.com/milvus-io/milvus/pkg/v2/proto/datapb"
|
|
"github.com/milvus-io/milvus/pkg/v2/proto/indexcgopb"
|
|
"github.com/milvus-io/milvus/pkg/v2/proto/indexpb"
|
|
"github.com/milvus-io/milvus/pkg/v2/util/metautil"
|
|
)
|
|
|
|
func ParseStorageConfig(s *indexpb.StorageConfig) (*indexcgopb.StorageConfig, error) {
|
|
bs, err := proto.Marshal(s)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
res := &indexcgopb.StorageConfig{}
|
|
err = proto.Unmarshal(bs, res)
|
|
return res, err
|
|
}
|
|
|
|
func GetSegmentInsertFiles(fieldBinlogs []*datapb.FieldBinlog, storageConfig *indexpb.StorageConfig, collectionID int64, partitionID int64, segmentID int64) *indexcgopb.SegmentInsertFiles {
|
|
insertLogs := make([]*indexcgopb.FieldInsertFiles, 0)
|
|
for _, insertLog := range fieldBinlogs {
|
|
filePaths := make([]string, 0)
|
|
columnGroupID := insertLog.GetFieldID()
|
|
for _, binlog := range insertLog.GetBinlogs() {
|
|
filePath := metautil.BuildInsertLogPath(storageConfig.GetRootPath(), collectionID, partitionID, segmentID, columnGroupID, binlog.GetLogID())
|
|
if storageConfig.StorageType != "local" {
|
|
filePath = path.Join(storageConfig.GetBucketName(), filePath)
|
|
}
|
|
filePaths = append(filePaths, filePath)
|
|
}
|
|
insertLogs = append(insertLogs, &indexcgopb.FieldInsertFiles{
|
|
FilePaths: filePaths,
|
|
})
|
|
}
|
|
return &indexcgopb.SegmentInsertFiles{
|
|
FieldInsertFiles: insertLogs,
|
|
}
|
|
}
|