package utils import "strconv" func HumanSize(bytes uint64) string { units := []string{"B", "KB", "MB", "GB", "TB", "PB"} var unitIndex int size := float64(bytes) for size >= 1024 && unitIndex < len(units)-1 { size /= 1024 unitIndex++ } if unitIndex == 0 { return strconv.FormatUint(bytes, 10) + units[unitIndex] } return strconv.FormatFloat(size, 'f', 1, 64) + units[unitIndex] } func HumanSizeInt(bytes int64) string { return HumanSize(uint64(bytes)) } func HumanDiskSize(bytes uint64) string { units := []string{"B", "KB", "MB", "GB", "TB", "PB"} var unitIndex int size := float64(bytes) for size >= 1000 && unitIndex < len(units)-1 { size /= 1000 unitIndex++ } if unitIndex == 0 { return strconv.FormatUint(bytes, 10) + units[unitIndex] } return strconv.FormatFloat(size, 'f', 1, 64) + units[unitIndex] }