@@ -701,16 +701,25 @@ 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 single-part upload' , file .uuid )
707
- self .mirror_service .mirror_file (catalog , file )
704
+ file_is_large = file .size > 10 * 1024 ** 2
705
+ deployment_is_stable = (config .deployment .is_stable
706
+ and not config .deployment .is_unit_test
707
+ and catalog not in config .integration_test_catalogs )
708
+ if file_is_large and not deployment_is_stable :
709
+ log .info ('Not mirroring file %r (%d bytes) to save cost' ,
710
+ file .uuid , file .size )
708
711
else :
709
- log .info ('Mirroring file %r via multi-part upload' , file .uuid )
710
- 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 )]
713
- self .queue_mirror_messages (messages )
712
+ # Ensure we test with multiple parts on lower deployments
713
+ part_size = FilePart .default_size if deployment_is_stable else FilePart .min_size
714
+ if file .size <= part_size :
715
+ log .info ('Mirroring file %r via single-part upload' , file .uuid )
716
+ self .mirror_service .mirror_file (catalog , file )
717
+ else :
718
+ log .info ('Mirroring file %r via multi-part upload' , file .uuid )
719
+ upload_id = self .mirror_service .begin_mirroring_file (file )
720
+ part = FilePart .head (file , part_size )
721
+ messages = [self .mirror_part_message (catalog , file , part , upload_id )]
722
+ self .queue_mirror_messages (messages )
714
723
715
724
def mirror_file_part (self ,
716
725
catalog : CatalogName ,
0 commit comments