Feat: use new ChunkManager for OneDrive API client

This commit is contained in:
HFO4
2022-03-20 11:20:09 +08:00
parent 5802161102
commit 015ccd5026
2 changed files with 41 additions and 52 deletions

View File

@@ -60,6 +60,7 @@ func (c *ChunkGroup) Process(processor ChunkProcessFunc) error {
return err
}
util.Log().Debug("Chunk %d processed", c.currentIndex)
return nil
}
@@ -68,6 +69,16 @@ func (c *ChunkGroup) Start() int64 {
return int64(uint64(c.Index()) * c.chunkSize)
}
// Total returns the total length current chunk
func (c *ChunkGroup) Total() int64 {
return int64(c.fileInfo.Size)
}
// RangeHeader returns header value of Content-Range
func (c *ChunkGroup) RangeHeader() string {
return fmt.Sprintf("bytes %d-%d/%d", c.Start(), c.Start()+c.Length()-1, c.Total())
}
// Index returns current chunk index, starts from 0
func (c *ChunkGroup) Index() int {
return c.currentIndex
@@ -89,3 +100,8 @@ func (c *ChunkGroup) Length() int64 {
return int64(contentLength)
}
// IsLast returns if current chunk is the last one
func (c *ChunkGroup) IsLast() bool {
return c.Index() == int(c.chunkNum-1)
}