Exemplo n.º 1
0
 def verify_blob(self, sum):
     recipe = self.get_recipe(sum)
     if recipe:
         reader = create_blob_reader(recipe, self)
         verified_ok = (sum == md5sum_file(reader))
     elif self.has_raw_blob(sum):
         path = self.get_blob_path(sum)
         verified_ok = (sum == md5sum_file(path))
     else:
         raise ValueError("No such blob or recipe: " + sum)
     return verified_ok 
Exemplo n.º 2
0
 def get_blob(self, sum, offset = 0, size = -1):
     """ Returns None if there is no such blob """
     if self.has_raw_blob(sum):
         path = self.get_blob_path(sum)
         with open(path, "rb") as f:
             f.seek(offset)
             data = f.read(size)
         return data
     recipe = self.get_recipe(sum)
     if recipe:
         reader = create_blob_reader(recipe, self)
         reader.seek(offset)
         return reader.read(size)
     else:
         raise ValueError("No such blob or recipe exists: "+sum)
Exemplo n.º 3
0
 def verify_blob(self, sum):
     recipe = self.get_recipe(sum)
     md5_summer = hashlib.md5()
     if recipe:
         reader = create_blob_reader(recipe, self)
         while reader.bytes_left():
             md5_summer.update(reader.read(4096))
         return sum == md5_summer.hexdigest()
     if not self.has_raw_blob(sum):
         raise ValueError("No such blob or recipe: " + sum)
     path = self.get_blob_path(sum)
     with safe_open(path, "rb") as f:
         for block in file_reader(f):
             md5_summer.update(block)
         md5 = md5_summer.hexdigest()
         verified_ok = (sum == md5)
     return verified_ok