@@ -701,20 +701,30 @@ def mirror_file(self,
701
701
):
702
702
file = self .load_file (catalog , file_json )
703
703
assert file .size is not None , R ('File size unknown' , file )
704
- part_size = FilePart .default_size
705
- if file .size <= part_size :
706
- log .info ('Mirroring file %r via standard upload' , file .uuid )
707
- self .mirror_service .mirror_file (catalog , file )
708
- log .info ('Successfully mirrored file %r via standard upload' , file .uuid )
704
+
705
+ file_is_large = file .size > 10 * 1024 ** 2
706
+ deployment_is_stable = (config .deployment .is_stable
707
+ and not config .deployment .is_unit_test
708
+ and catalog not in config .integration_test_catalogs )
709
+ if file_is_large and not deployment_is_stable :
710
+ log .info ('Not mirroring file %r (%d bytes) to save cost' ,
711
+ file .uuid , file .size )
709
712
else :
710
- log .info ('Mirroring file %r via multi-part upload' , file .uuid )
711
- upload_id = self .mirror_service .begin_mirroring_file (file )
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 ])]
717
- self .queue_mirror_messages (messages )
713
+ # Ensure we test with multiple parts on lower deployments
714
+ part_size = FilePart .default_size if deployment_is_stable else FilePart .min_size
715
+ if file .size <= part_size :
716
+ log .info ('Mirroring file %r via standard upload' , file .uuid )
717
+ self .mirror_service .mirror_file (catalog , file )
718
+ log .info ('Successfully mirrored file %r via standard upload' , file .uuid )
719
+ else :
720
+ log .info ('Mirroring file %r via multi-part upload' , file .uuid )
721
+ upload_id = self .mirror_service .begin_mirroring_file (file )
722
+ first_part = FilePart .first (file , part_size )
723
+ etag = self .mirror_service .mirror_file_part (catalog , file , upload_id , first_part )
724
+ next_part = first_part .next (file )
725
+ assert next_part is not None
726
+ messages = [self .mirror_part_message (catalog , file , next_part , upload_id , [etag ])]
727
+ self .queue_mirror_messages (messages )
718
728
719
729
def mirror_file_part (self ,
720
730
catalog : CatalogName ,
0 commit comments