package stgmod import ( cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" ) type ObjectBlock struct { ObjectID cdssdk.ObjectID `db:"ObjectID" json:"objectID"` Index int `db:"Index" json:"index"` NodeID cdssdk.NodeID `db:"NodeID" json:"nodeID"` // 这个块应该在哪个节点上 FileHash string `db:"FileHash" json:"fileHash"` } type ObjectBlockDetail struct { ObjectID cdssdk.ObjectID `json:"objectID"` Index int `json:"index"` FileHash string `json:"fileHash"` NodeIDs []cdssdk.NodeID `json:"nodeID"` // 这个块应该在哪些节点上 CachedNodeIDs []cdssdk.NodeID `json:"cachedNodeIDs"` // 哪些节点实际缓存了这个块 } func NewObjectBlockDetail(objID cdssdk.ObjectID, index int, fileHash string, nodeIDs []cdssdk.NodeID, cachedNodeIDs []cdssdk.NodeID) ObjectBlockDetail { return ObjectBlockDetail{ ObjectID: objID, Index: index, FileHash: fileHash, NodeIDs: nodeIDs, CachedNodeIDs: cachedNodeIDs, } } type ObjectDetail struct { Object cdssdk.Object `json:"object"` Blocks []ObjectBlockDetail `json:"blocks"` } func NewObjectDetail(object cdssdk.Object, blocks []ObjectBlockDetail) ObjectDetail { return ObjectDetail{ Object: object, Blocks: blocks, } } type LocalMachineInfo struct { NodeID *cdssdk.NodeID `json:"nodeID"` ExternalIP string `json:"externalIP"` LocalIP string `json:"localIP"` LocationID cdssdk.LocationID `json:"locationID"` }