gitee.com/h79/goutils@v1.22.10/common/file/tools/chunk.go (about)

     1  package tools
     2  
     3  import (
     4  	fileconfig "gitee.com/h79/goutils/common/file/config"
     5  )
     6  
     7  func Chunk(size int64, chunkNum int) []fileconfig.Chunk {
     8  
     9  	var chunks []fileconfig.Chunk
    10  	var chunk = fileconfig.Chunk{}
    11  	var num = int64(chunkNum)
    12  	for i := int64(0); i < num; i++ {
    13  		chunk.Number = int(i + 1)
    14  		chunk.Offset = i * (size / num)
    15  		if i == num-1 {
    16  			chunk.Size = size/num + size%num
    17  		} else {
    18  			chunk.Size = size / num
    19  		}
    20  		chunks = append(chunks, chunk)
    21  	}
    22  	return chunks
    23  }
    24  
    25  func ChunkNum(size, minChunkSize int64) int {
    26  	return (int)(size/minChunkSize + 1)
    27  }