@@ -5,7 +5,6 @@ use entity::request::UpdateUploadingStatusOption;
55use entity:: storage:: { GetDomainPositionStatus , ShortMetaData , UploadingStatus } ;
66use futures:: StreamExt ;
77use futures:: future:: Either ;
8- use if_chain:: if_chain;
98use md5:: { Digest , Md5 } ;
109use std:: borrow:: Cow ;
1110use std:: collections:: HashMap ;
@@ -55,27 +54,28 @@ pub async fn upload_files(
5554 . min_depth ( 1 )
5655 . into_iter ( )
5756 . filter_map ( |entity| {
58- if_chain ! {
59- if let Some ( entity) = entity. ok( ) ;
60- if let Some ( metadata) = entity. metadata( ) . ok( ) ;
61- if metadata. is_file( ) ;
62- if let Ok ( key) = entity. path( ) . strip_prefix( & parent) ;
63- then {
64- let key = key. components( ) . map( |c| c. as_os_str( ) . to_string_lossy( ) )
65- . collect:: <Vec <_>>( )
66- . join( "/" ) ;
67- if server_metadata. get( & key) . filter( |x|{
68- let md5 = md5_file( entity. path( ) , & mut byte_buffer) ;
69- x. length == metadata. len( ) &&
70- md5. filter( |md5|md5 == & x. md5) . is_some( )
71- } ) . is_none( ) {
72- Some ( ( key, entity. path( ) . to_path_buf( ) ) )
73- } else {
74- None
75- }
76- } else {
77- None
78- }
57+ let entity = entity. ok ( ) ?;
58+ let metadata = entity. metadata ( ) . ok ( ) ?;
59+ if !metadata. is_file ( ) {
60+ return None ;
61+ }
62+ let key = entity. path ( ) . strip_prefix ( & parent) . ok ( ) ?;
63+ let key = key
64+ . components ( )
65+ . map ( |c| c. as_os_str ( ) . to_string_lossy ( ) )
66+ . collect :: < Vec < _ > > ( )
67+ . join ( "/" ) ;
68+ if server_metadata
69+ . get ( & key)
70+ . filter ( |x| {
71+ let md5 = md5_file ( entity. path ( ) , & mut byte_buffer) ;
72+ x. length == metadata. len ( ) && md5. filter ( |md5| md5 == & x. md5 ) . is_some ( )
73+ } )
74+ . is_none ( )
75+ {
76+ Some ( ( key, entity. path ( ) . to_path_buf ( ) ) )
77+ } else {
78+ None
7979 }
8080 } )
8181 . collect :: < Vec < ( String , PathBuf ) > > ( ) ;
0 commit comments