🎉
GoでファイルのMD5ハッシュを取得する方法
指定したファイルのMD5ハッシュを取得して返す
func md5File(filePath string) (string, error) {
file, err := os.Open(filePath)
if err != nil {
errors.Wrapf(err, "failed open file : %s", filePath)
}
defer file.Close()
zr, _ := gzip.NewReader(file)
if err != nil {
errors.Wrapf(err, "failed read gz file : %s", filePath)
}
defer zr.Close()
hash := md5.New()
if _, err := io.Copy(hash, zr); err != nil {
return "", errors.Wrapf(err, "failed file hash copy : %s", filePath)
}
hashInBytes := hash.Sum(nil)[:16]
return hex.EncodeToString(hashInBytes), nil
}
Discussion