在某些业务场景下,我们需要获取应用服务器传过来的url地址来判断文件是否是重复的,就可以对每一个url对应的文件计算md5,然后将md5进行对比,一样的话就证明该图片是已经存在的

    1. package main
    2. import (
    3. "crypto/md5"
    4. "fmt"
    5. "io/ioutil"
    6. "net/http"
    7. )
    8. func main() {
    9. url_1 :="http://m10.music.126.net/20201011153043/e6ee3cceb079c8acb94a83485a3059e5/ymusic/5408/520f/545a/cbd0b59720ee5e9f4f8cc0f7615506b2.mp3"
    10. url_2 :="http://qi0z0c1kx.hn-bkt.clouddn.com/5408_520f_545a_cbd0b59720ee5e9f4f8cc0f7615506b2.mp3"
    11. resp_1, err := http.Get(url_1)
    12. if err != nil {
    13. fmt.Println("error http.Get")
    14. }
    15. resp_2, err := http.Get(url_2)
    16. if err != nil {
    17. fmt.Println(err)
    18. }
    19. defer resp_1.Body.Close()
    20. defer resp_2.Body.Close()
    21. bytes_1, err := ioutil.ReadAll(resp_1.Body)
    22. if err != nil {
    23. fmt.Println(err)
    24. }
    25. bytes_2, err := ioutil.ReadAll(resp_2.Body)
    26. if err != nil {
    27. fmt.Println(err)
    28. }
    29. sum_1 := md5.Sum(bytes_1)
    30. sum_2 := md5.Sum(bytes_2)
    31. s1:=fmt.Sprintf("%x",sum_1)
    32. s2:=fmt.Sprintf("%x",sum_2)
    33. fmt.Println(s1)
    34. fmt.Println(s2)
    35. }