如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?
在服務(wù)器端,您可以使用dd和md5sum來校驗(yàn)文件的每個(gè)塊:
#!/bin/bash
FILENAME="$1"
FILESIZE=`stat --printf="%s" $FILENAME`
CHUNKSIZE=536870912 # 512MB
CHUNKNUM=0
while ! grep -q 'cannot skip' hash.log 2> /dev/null ; do
dd if=$FILENAME bs=$CHUNKSIZE skip=$CHUNKNUM count=1 2> hash.log | md5sum >> $FILENAME.md5
CHUNKNUM=$(( CHUNKNUM + 1 ))
done
rm hash.log
您將獲得一個(gè)帶有所有塊哈希值的$FILENAME.md5文件.
您現(xiàn)在可以下載該大文件和校驗(yàn)和,在該文件上運(yùn)行此腳本并比較哈希值.如果任何一個(gè)部分獲得不匹配的哈希值,您可以使用curl僅下載文件的一部分(如果服務(wù)器支持RANGE)并使用dd修補(bǔ)文件.
例如,如果塊2出現(xiàn)哈希不匹配:
curl -s -r 536870912-1073741824 | dd of=somelargetarfile.tar seek=536870912 conv=notrunc
這將下載塊2,并用它修補(bǔ)大的tar文件.
總結(jié)
以上是生活随笔為你收集整理的如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python语法异常 Exception
- 下一篇: _Linux软件安装