Reference
http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz
http://docs.python.org/3/library/urllib.request.html#module-urllib.request
Description
用 urllib 下載 cassandra 到本地
Codes
簡單的方式
import urllib.request
with urllib.request.urlopen('http://ftp.tc.edu.tw/pub/Apache/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz') as f:
with open('d:/apache-cassandra-2.0.4-bin.tar.gz','wb') as target:
target.write(f.read())
如果想要看進度可以這樣
import urllib.request
with urllib.request.urlopen('http://ftp.tc.edu.tw/pub/Apache/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz') as f:
with open('d:/apache-cassandra-2.0.4-bin.tar.gz','wb') as target:
filesize = f.getheader('Content-Length')
wrotesize = 0
while True:
if wrotesize == int(filesize):
break
wrotesize += target.write(f.read(1024))
print('download...',wrotesize,'of',filesize)
想從公司內的 Maven download 還需要認證
import urllib.request
pwdmgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
pwdmgr.add_password(None,'http://mvn.company.site','myid','mypw')
auth_handler = urllib.request.HTTPBasicAuthHandler(pwdmgr)
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
with urllib.request.urlopen('http://mvn.company.site/downloadfile.zip') as f:
with open('d:/downloadfile.zip','wb') as target:
target.write(f.read())
後記
還不太清楚 HTTPBasicAuthHandler 的 realm 要怎麼指定正確,
使用 Maven response 的 realm 也不行.
只好先用 HTTPPasswordMgrWithDefaultRealm 了...
只好先用 HTTPPasswordMgrWithDefaultRealm 了...
沒有留言:
張貼留言