21 lines
371 B
Go
21 lines
371 B
Go
|
|
package helpers
|
||
|
|
|
||
|
|
import "fmt"
|
||
|
|
|
||
|
|
func FormatBytes(bytes int64) string {
|
||
|
|
units := []string{"B", "KB", "MB", "GB"}
|
||
|
|
size := float64(bytes)
|
||
|
|
unitIndex := 0
|
||
|
|
|
||
|
|
for size >= 1024 && unitIndex < len(units)-1 {
|
||
|
|
size /= 1024
|
||
|
|
unitIndex++
|
||
|
|
}
|
||
|
|
|
||
|
|
if unitIndex == 0 {
|
||
|
|
return fmt.Sprintf("%d %s", bytes, units[unitIndex])
|
||
|
|
}
|
||
|
|
|
||
|
|
return fmt.Sprintf("%.1f %s", size, units[unitIndex])
|
||
|
|
}
|