|
import urlgrabber
|
|
import logging
|
|
import time
|
|
|
|
LOG_FILENAME = 'shareLinex.log'
|
|
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
|
|
|
|
fileISO = "my_file.iso"
|
|
teacherServer = "192.168.0.254"
|
|
port = "8999"
|
|
|
|
endDownload = false
|
|
|
|
|
|
def md5_for_file(f, block_size=2**20):
|
|
md5 = hashlib.md5()
|
|
while True:
|
|
data = f.read(block_size)
|
|
if not data:
|
|
break
|
|
md5.update(data)
|
|
return md5.digest()
|
|
|
|
|
|
def verifyFile:
|
|
if not os.path.exists("verify.hash"):
|
|
try
|
|
g = URLGrabber()
|
|
local_filename = g.urlgrab("http://"+teacherServer+":"+port+"/verify.hash")
|
|
except
|
|
logging.debug("No se puede descargar el fichero de verificación")
|
|
return false
|
|
|
|
verifyHash = so.read("verify.hash")
|
|
if verifyHash != md5_for_file("fileISO"):
|
|
return false
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
while not endDownload:
|
|
if not os.path.exists(release):
|
|
try
|
|
g = URLGrabber()
|
|
local_filename = g.urlgrab("http://"+teacherServer+":"+port+"/"+fileISO)
|
|
except
|
|
logging.debug("No se puede realizar la descarga desde: "+teacherServer)
|
|
time.sleep(600)
|
|
else
|
|
try
|
|
g = URLGrabber(reget="simple")
|
|
local_filename = g.urlgrab("http://"+teacherServer+":"+port+"/"+fileISO)
|
|
except
|
|
logging.debug("No se puede reanudar la descarga desde: "+teacherServer)
|
|
time.sleep(600)
|