🎉

GoでファイルのMD5ハッシュを取得する方法

2020/10/28に公開

指定したファイルの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