@@ -1361,18 +1361,32 @@ def package_ui(self):
13611361 arcname = os .path .relpath (file_path , ui_dir )
13621362 zipf .write (file_path , arcname )
13631363
1364- self .console .print ("[cyan]Upload source to S3[/cyan]" )
1365- s3_key = f"{ self .prefix_and_version } /{ zipfile_name } "
1366-
1367- try :
1368- self .s3_client .upload_file (
1369- zipfile_path , self .bucket , s3_key , ExtraArgs = {"ACL" : self .acl }
1370- )
1371- except ClientError as e :
1372- self .console .print (f"[red]Error uploading UI zipfile: { e } [/red]" )
1364+ # Check if file exists in S3 and upload if needed
1365+ s3_key = f"{ self .prefix_and_version } /{ zipfile_name } "
1366+ try :
1367+ self .s3_client .head_object (Bucket = self .bucket , Key = s3_key )
1368+ self .console .print (
1369+ f"[green]WebUI zipfile already exists in S3: { zipfile_name } [/green]"
1370+ )
1371+ except ClientError as e :
1372+ if e .response ["Error" ]["Code" ] == "404" :
1373+ self .console .print ("[cyan]Upload source to S3[/cyan]" )
1374+ try :
1375+ self .s3_client .upload_file (
1376+ zipfile_path , self .bucket , s3_key , ExtraArgs = {"ACL" : self .acl }
1377+ )
1378+ self .console .print (
1379+ f"[green]Uploaded WebUI zipfile to S3: { zipfile_name } [/green]"
1380+ )
1381+ except ClientError as upload_error :
1382+ self .console .print (
1383+ f"[red]Error uploading UI zipfile: { upload_error } [/red]"
1384+ )
1385+ sys .exit (1 )
1386+ else :
1387+ self .console .print (f"[red]Error checking S3 for UI zipfile: { e } [/red]" )
13731388 sys .exit (1 )
13741389
1375- self .console .print (f"[green]WebUI zipfile: { zipfile_name } [/green]" )
13761390 return zipfile_name
13771391
13781392 def build_main_template (self , webui_zipfile , components_needing_rebuild ):
0 commit comments