@@ -226,7 +226,7 @@ def mirror_part_message(self,
226
226
file : File ,
227
227
part : FilePart ,
228
228
upload_id : str ,
229
- etags : Sequence [str ] = ()
229
+ etags : Sequence [str ]
230
230
) -> SQSFifoMessage :
231
231
return SQSFifoMessage (
232
232
body = {
@@ -703,13 +703,17 @@ def mirror_file(self,
703
703
assert file .size is not None , R ('File size unknown' , file )
704
704
part_size = FilePart .default_size
705
705
if file .size <= part_size :
706
- log .info ('Mirroring file %r via single-part upload' , file .uuid )
706
+ log .info ('Mirroring file %r via standard upload' , file .uuid )
707
707
self .mirror_service .mirror_file (catalog , file )
708
+ log .info ('Successfully mirrored file %r via standard upload' , file .uuid )
708
709
else :
709
710
log .info ('Mirroring file %r via multi-part upload' , file .uuid )
710
711
upload_id = self .mirror_service .begin_mirroring_file (file )
711
- part = FilePart .head (file , part_size )
712
- messages = [self .mirror_part_message (catalog , file , part , upload_id )]
712
+ first_part = FilePart .first (file , part_size )
713
+ etag = self .mirror_service .mirror_file_part (catalog , file , upload_id , first_part )
714
+ next_part = first_part .next (file )
715
+ assert next_part is not None
716
+ messages = [self .mirror_part_message (catalog , file , next_part , upload_id , [etag ])]
713
717
self .queue_mirror_messages (messages )
714
718
715
719
def mirror_file_part (self ,
@@ -745,7 +749,9 @@ def finalize_file(self,
745
749
etags : Sequence [str ]
746
750
):
747
751
file = self .load_file (catalog , file_json )
752
+ assert etags
748
753
self .mirror_service .finish_mirroring_file (file , upload_id , etags )
754
+ log .info ('Successfully mirrored file %r via multi-part upload' , file .uuid )
749
755
750
756
def load_file (self , catalog : CatalogName , file : JSON ) -> File :
751
757
return self .metadata_plugin (catalog ).file_class .from_json (file )
0 commit comments