Browse Source

recompress: only read metadata to check for ctype/clevel

Thomas Waldmann 2 năm trước cách đây
mục cha
commit
b28d6ee657
2 tập tin đã thay đổi với 1 bổ sung2 xóa
  1. 1 1
      src/borg/archive.py
  2. 0 1
      src/borg/remote.py

+ 1 - 1
src/borg/archive.py

@@ -2269,7 +2269,7 @@ class ArchiveRecreater:
         overwrite = self.recompress
         if self.recompress and not self.always_recompress and chunk_id in self.cache.chunks:
             # Check if this chunk is already compressed the way we want it
-            old_meta = self.repo_objs.parse_meta(chunk_id, self.repository.get(chunk_id))
+            old_meta = self.repo_objs.parse_meta(chunk_id, self.repository.get(chunk_id, read_data=False))
             compr_hdr = bytes((old_meta["ctype"], old_meta["clevel"]))
             compressor_cls, level = Compressor.detect(compr_hdr)
             if (

+ 0 - 1
src/borg/remote.py

@@ -1258,7 +1258,6 @@ class RepositoryCache(RepositoryNoCache):
         shutil.rmtree(self.basedir)
 
     def get_many(self, keys, read_data=True, cache=True):
-        # TODO: this currently always requests the full chunk from self.repository (read_data=True).
         # It could use different cache keys depending on read_data and cache full vs. meta-only chunks.
         unknown_keys = [key for key in keys if self.prefixed_key(key, complete=read_data) not in self.cache]
         repository_iterator = zip(unknown_keys, self.repository.get_many(unknown_keys, read_data=read_data))