所有人.
我正在try 从Web服务器下载文件部分,并将其合并为单个文件. 我是这样做的:
out, err := os.Create(fileInfo.FileInfo.FileName)
if err != nil {
panic(err)
}
for _, hash := range fileInfo.FileInfo.FileBlocks {
keeper := getKeeperByHash(hash.Hash, fileInfo.HasHash)
log.Println("Downloading", hash.Hash)
downloadURL := &url.URL{
Scheme: "http",
Host: fmt.Sprintf("%s:%d", keeper.Ip, keeper.Port),
Path: "file/get",
}
param := url.Values{}
param.Add("hash", hash.Hash)
downloadURL.RawQuery = param.Encode()
resp, err := http.Get(downloadURL.String())
n, err := io.Copy(out, resp.Body)
log.Println(n)
if err != nil {
panic(err)
}
resp.Body.Close()
}
out.Close()
hash1, _ := GetFileHashAlt(fileInfo.FileInfo.FileName)
if hash1 != fileInfo.FileInfo.FileHash {
log.Println(hash1)
log.Println(fileInfo.FileInfo.FileHash)
panic("HASH NOT THE SAME")
}
log.Println(hash1)
log.Println(fileInfo.FileInfo.FileHash)
但对于二进制文件,哈希值不同,文件被 destruct .对于文本文件,一切正常. 问题可能出在哪里? 当我上传和拆分文件时,我一直在判断哈希,而且总是一样的.
我先试着在下载后拆分文件,然后他们将其合并为一个文件,但问题仍然存在.