package common import ( "crypto/md5" "encoding/base64" "fmt" log "github.com/sirupsen/logrus" "os" "path/filepath" "strings" "time" ) func HTTPGMTDate() string { GmtDateLayout := "Mon, 02 Jan 2006 15:04:05 GMT" return time.Now().UTC().Format(GmtDateLayout) } func MakeSignature(key, date string) string { s := strings.Join([]string{key, date}, "\n") return Base64Encode(MD5Encode([]byte(s))) } func Base64Encode(s string) string { return base64.StdEncoding.EncodeToString([]byte(s)) } func MD5Encode(b []byte) string { return fmt.Sprintf("%x", md5.Sum(b)) } func MakeSureDirExit(filePath string) { dirPath := filepath.Dir(filePath) if _, err := os.Stat(dirPath); os.IsNotExist(err) { err = os.MkdirAll(dirPath, os.ModePerm) if err != nil { log.Info("could not create dir path:", dirPath) os.Exit(1) } log.Info("create dir path:", dirPath) return } log.Info("dir path exits:", dirPath) }