2025-12-23 19:17:16 +08:00

61 lines
1.1 KiB
Go

package main
import (
"fmt"
"os"
"strings"
)
func fileExists(filename string) bool {
_, err := os.Stat(filename)
return err == nil
}
func convertToStringSlice(slice any) []string {
if s, ok := slice.([]any); ok {
result := make([]string, len(s))
for i, v := range s {
if str, ok := v.(string); ok {
result[i] = str
}
}
return result
}
return nil
}
func getString(m map[string]any, key string) string {
if val, ok := m[key].(string); ok {
return val
}
return ""
}
func formatBytes(size int64) string {
const unit = 1024
if size < unit {
return fmt.Sprintf("%d B", size)
}
div, exp := int64(unit), 0
for n := size / unit; n >= unit; n /= unit {
div *= unit
exp++
}
units := []string{"KB", "MB", "GB", "TB", "PB", "EB"}
if exp >= len(units) {
exp = len(units) - 1
}
return fmt.Sprintf("%.1f %s", float64(size)/float64(div), units[exp])
}
func getTotalSize(m *MultipartUpload) int64 {
if m == nil {
return 0
}
// If database file is sql file, divide its size by 8 atleast
if strings.HasSuffix(m.FileName, ".sql") {
return m.TotalSize / 8
}
return m.TotalSize
}