2022.06.22  

【go】指定したcsvファイルのMD5ハッシュ値を出力する

Go    

指定したcsvファイルからMD5のハッシュ値を出力したくなり、その際に作成した関数をメモ書きします。

APIから取得したCSVファイルのハッシュ値を取得

func csvFileHash(csvfile *multipart.File) (string, error) {
    // csvファイル読み込みテスト
    csvFile := bufio.NewReader(*csvfile)

    hash := md5.New()
    if _, err := io.Copy(hash, csvFile); err != nil {
        return "", fmt.Errorf("FileHashCopyError :%s", err.Error())
    }

    hashInBytes := hash.Sum(nil)[:16]
    return hex.EncodeToString(hashInBytes), nil
}

パスから取得したCSVファイルをハッシュ化<

func csvFileHash(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
}
コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信