def getRemoteFileSize(url, proxy=None):
""" through content-length Header gets the remote file size
url - The target file URL
proxy - The agent """
opener = urllib2.build_opener()
if proxy:
if url.lower().startswith('https://'):
opener.add_handler(urllib2.ProxyHandler({'https' : proxy}))
else:
opener.add_handler(urllib2.ProxyHandler({'http' : proxy}))
try:
request = urllib2.Request(url)
request.get_method = lambda: 'HEAD'
response = opener.open(request)
response.read()
except Exception, e: # The remote file does not exist
return 0
else:
fileSize = dict(response.headers).get('content-length', 0)
return int(fileSize)