2222 ipc ,
2323 telemetry ,
2424 types ,
25- upload_api_v4 ,
2625 uploader ,
2726 utils ,
2827 VERSION ,
@@ -192,8 +191,9 @@ def write_history(payload: uploader.Progress):
192191def _setup_tdqm (emitter : uploader .EventEmitter ) -> None :
193192 upload_pbar : tqdm | None = None
194193
194+ @emitter .on ("upload_start" )
195195 @emitter .on ("upload_fetch_offset" )
196- def upload_fetch_offset (payload : uploader .Progress ) -> None :
196+ def upload_start (payload : uploader .Progress ) -> None :
197197 nonlocal upload_pbar
198198
199199 if upload_pbar is not None :
@@ -204,18 +204,18 @@ def upload_fetch_offset(payload: uploader.Progress) -> None:
204204 import_path : str | None = payload .get ("import_path" )
205205 filetype = payload .get ("file_type" , "unknown" ).upper ()
206206 if import_path is None :
207- _desc = f"Uploading { filetype } ({ nth } /{ total } )"
207+ desc = f"Uploading { filetype } ({ nth } /{ total } )"
208208 else :
209- _desc = (
209+ desc = (
210210 f"Uploading { filetype } { os .path .basename (import_path )} ({ nth } /{ total } )"
211211 )
212212 upload_pbar = tqdm (
213213 total = payload ["entity_size" ],
214- desc = _desc ,
214+ desc = desc ,
215215 unit = "B" ,
216216 unit_scale = True ,
217217 unit_divisor = 1024 ,
218- initial = payload [ "offset" ] ,
218+ initial = payload . get ( "offset" , 0 ) ,
219219 disable = LOG .getEffectiveLevel () <= logging .DEBUG ,
220220 )
221221
@@ -295,8 +295,13 @@ def _setup_api_stats(emitter: uploader.EventEmitter):
295295
296296 @emitter .on ("upload_start" )
297297 def collect_start_time (payload : _APIStats ) -> None :
298- payload ["upload_start_time" ] = time .time ()
298+ now = time .time ()
299+ payload ["upload_start_time" ] = now
299300 payload ["upload_total_time" ] = 0
301+ # These filed should be initialized in upload events like "upload_fetch_offset"
302+ # but since we disabled them for uploading images, so we initialize them here
303+ payload ["upload_last_restart_time" ] = now
304+ payload ["upload_first_offset" ] = 0
300305
301306 @emitter .on ("upload_fetch_offset" )
302307 def collect_restart_time (payload : _APIStats ) -> None :
@@ -466,7 +471,7 @@ def _gen_upload_everything(
466471 (m for m in metadatas if isinstance (m , types .ImageMetadata )),
467472 utils .find_images (import_paths , skip_subfolders = skip_subfolders ),
468473 )
469- for image_result in uploader .ZipImageSequence .zip_images_and_upload (
474+ for image_result in uploader .ZipImageSequence .upload_images (
470475 mly_uploader ,
471476 image_metadatas ,
472477 ):
@@ -510,13 +515,8 @@ def _gen_upload_videos(
510515 "file_type" : video_metadata .filetype .value ,
511516 "import_path" : str (video_metadata .filename ),
512517 "sequence_md5sum" : video_metadata .md5sum ,
513- "upload_md5sum" : video_metadata .md5sum ,
514518 }
515519
516- session_key = uploader ._session_key (
517- video_metadata .md5sum , upload_api_v4 .ClusterFileType .CAMM
518- )
519-
520520 try :
521521 with video_metadata .filename .open ("rb" ) as src_fp :
522522 # Build the mp4 stream with the CAMM samples
@@ -525,12 +525,15 @@ def _gen_upload_videos(
525525 )
526526
527527 # Upload the mp4 stream
528- cluster_id = mly_uploader .upload_stream (
528+ file_handle = mly_uploader .upload_stream (
529529 T .cast (T .IO [bytes ], camm_fp ),
530- upload_api_v4 .ClusterFileType .CAMM ,
531- session_key ,
532530 progress = T .cast (T .Dict [str , T .Any ], progress ),
533531 )
532+ cluster_id = mly_uploader .finish_upload (
533+ file_handle ,
534+ api_v4 .ClusterFileType .CAMM ,
535+ progress = T .cast (T .Dict [str , T .Any ], progress ),
536+ )
534537 except Exception as ex :
535538 yield video_metadata , uploader .UploadResult (error = ex )
536539 else :
@@ -706,7 +709,9 @@ def upload(
706709
707710 finally :
708711 # We collected stats after every upload is finished
709- assert upload_successes == len (stats )
712+ assert upload_successes == len (stats ), (
713+ f"Expect { upload_successes } success but got { stats } "
714+ )
710715 _show_upload_summary (stats , upload_errors )
711716
712717
0 commit comments