Edouard@2463: #!/usr/bin/env python Edouard@2463: # -*- coding: utf-8 -*- Edouard@2463: Edouard@2463: # See COPYING file for copyrights details. Edouard@2463: edouard@2492: from __future__ import absolute_import andrej@2540: import hashlib Edouard@2463: edouard@2492: Edouard@2463: class ConnectorBase(object): Edouard@2463: Edouard@2465: chuncksize = 1024*1024 edouard@2492: Edouard@2487: def BlobFromFile(self, filepath, seed): andrej@2540: s = hashlib.new('md5') Edouard@2487: s.update(seed) Edouard@2487: blobID = self.SeedBlob(seed) Edouard@2463: with open(filepath, "rb") as f: Edouard@2487: while blobID == s.digest(): edouard@2492: chunk = f.read(self.chuncksize) edouard@2492: if len(chunk) == 0: edouard@2492: return blobID Edouard@2463: blobID = self.AppendChunkToBlob(chunk, blobID) Edouard@2463: s.update(chunk) Edouard@2621: raise IOError("Data corrupted during transfer or connection lost")