1919from prime_backup .exceptions import PrimeBackupError
2020from prime_backup .types .backup_info import BackupInfo
2121from prime_backup .types .backup_meta import BackupMeta
22+ from prime_backup .types .chunk_method import ChunkMethod
2223from prime_backup .types .operator import Operator , PrimeBackupOperatorNames
2324from prime_backup .types .standalone_backup_format import StandaloneBackupFormat
2425from 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
0 commit comments