Skip to content

Commit 91dab98

Browse files
committed
chunk method fix
1 parent 657f7d4 commit 91dab98

2 files changed

Lines changed: 6 additions & 8 deletions

File tree

prime_backup/action/import_backup_action.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from prime_backup.exceptions import PrimeBackupError
2020
from prime_backup.types.backup_info import BackupInfo
2121
from prime_backup.types.backup_meta import BackupMeta
22+
from prime_backup.types.chunk_method import ChunkMethod
2223
from prime_backup.types.operator import Operator, PrimeBackupOperatorNames
2324
from prime_backup.types.standalone_backup_format import StandaloneBackupFormat
2425
from prime_backup.types.tar_format import TarFormat
@@ -107,11 +108,11 @@ def __create_chunk(self, session: DbSession, data: memoryview, sah: SizeAndHash)
107108
self.__chunk_cache[sah.hash] = chunk
108109
return chunk
109110

110-
def __create_blob_chunked(self, session: DbSession, file_reader: IO[bytes], pre_cal_result: BlobPrecalculateResult) -> schema.Blob:
111+
def __create_blob_chunked(self, session: DbSession, file_reader: IO[bytes], chunk_method: ChunkMethod, pre_cal_result: BlobPrecalculateResult) -> schema.Blob:
111112
new_db_chunks: List[schema.Chunk] = []
112113
offset_to_db_chunk: Dict[int, schema.Chunk] = {}
113114
offset = 0
114-
for chunk in Chunker.create_stream_chunker(file_reader, need_entire_file_hash=False).cut():
115+
for chunk in Chunker.create_stream_chunker(chunk_method, file_reader, need_entire_file_hash=False).cut():
115116
if (db_chunk := self.__chunk_cache.get(chunk.hash)) is None:
116117
db_chunk = self.__create_chunk(session, chunk.data, SizeAndHash(chunk.length, chunk.hash))
117118
new_db_chunks.append(db_chunk)
@@ -135,8 +136,9 @@ def __create_blob_chunked(self, session: DbSession, file_reader: IO[bytes], pre_
135136
return blob
136137

137138
def __create_blob(self, session: DbSession, file_path: str, file_reader: IO[bytes], pre_cal_result: BlobPrecalculateResult) -> schema.Blob:
138-
if chunk_utils.should_chunk_blob(Path(file_path), pre_cal_result.size):
139-
blob = self.__create_blob_chunked(session, file_reader, pre_cal_result)
139+
chunk_method = ChunkMethod.get_for_file(Path(file_path), pre_cal_result.size)
140+
if chunk_method is not None:
141+
blob = self.__create_blob_chunked(session, file_reader, chunk_method, pre_cal_result)
140142
else:
141143
blob = self.__create_blob_direct(session, file_reader, SizeAndHash(pre_cal_result.size, pre_cal_result.hash))
142144

prime_backup/utils/chunk_utils.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ def prepare_chunk_directories():
4242
p.mkdir(parents=True, exist_ok=True)
4343

4444

45-
def should_chunk_blob(file_path: PathLike, file_size: int) -> bool:
46-
return ChunkMethod.get_for_file(file_path, file_size) is not None
47-
48-
4945
def create_chunk_group_hash(chunk_hashes: 'Iterable[str]') -> str:
5046
hasher = create_hasher()
5147
hasher.update('\0'.join(chunk_hashes).encode('utf8'))

0 commit comments

Comments
 (0)