@@ -795,47 +795,48 @@ function uploadFile(params, callback) {
795795 var taskList = [ ] ;
796796
797797 fs . stat ( params . FilePath , function ( err , stat ) {
798- try {
799- var isDir = stat . isDirectory ( ) ;
800- var FileSize = params . ContentLength = stat . size || 0 ;
801- var fileInfo = { TaskId : '' } ;
802-
803- // 整理 option,用于返回给回调
804- util . each ( params , function ( v , k ) {
805- if ( typeof v !== 'object' && typeof v !== 'function' ) {
806- fileInfo [ k ] = v ;
807- }
808- } ) ;
809-
810- // 处理文件 TaskReady
811- var _onTaskReady = params . onTaskReady ;
812- var onTaskReady = function ( tid ) {
813- fileInfo . TaskId = tid ;
814- _onTaskReady && _onTaskReady ( tid ) ;
815- } ;
816- params . onTaskReady = onTaskReady ;
817-
818- // 处理文件完成
819- var _onFileFinish = params . onFileFinish ;
820- var onFileFinish = function ( err , data ) {
821- _onFileFinish && _onFileFinish ( err , data , fileInfo ) ;
822- callback && callback ( err , data ) ;
823- } ;
824-
825- // 添加上传任务
826- var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile' ;
827- if ( api === 'putObject' ) {
828- params . Body = isDir ? '' : fs . createReadStream ( params . FilePath ) ;
829- params . Body . isSdkCreated = true ;
798+ if ( err ) {
799+ return callback ( err ) ;
800+ }
801+
802+ var isDir = stat . isDirectory ( ) ;
803+ var FileSize = params . ContentLength = stat . size || 0 ;
804+ var fileInfo = { TaskId : '' } ;
805+
806+ // 整理 option,用于返回给回调
807+ util . each ( params , function ( v , k ) {
808+ if ( typeof v !== 'object' && typeof v !== 'function' ) {
809+ fileInfo [ k ] = v ;
830810 }
831- taskList . push ( {
832- api : api ,
833- params : params ,
834- callback : onFileFinish ,
835- } ) ;
836- self . _addTasks ( taskList ) ;
837- } catch ( e ) {
811+ } ) ;
812+
813+ // 处理文件 TaskReady
814+ var _onTaskReady = params . onTaskReady ;
815+ var onTaskReady = function ( tid ) {
816+ fileInfo . TaskId = tid ;
817+ _onTaskReady && _onTaskReady ( tid ) ;
818+ } ;
819+ params . onTaskReady = onTaskReady ;
820+
821+ // 处理文件完成
822+ var _onFileFinish = params . onFileFinish ;
823+ var onFileFinish = function ( err , data ) {
824+ _onFileFinish && _onFileFinish ( err , data , fileInfo ) ;
825+ callback && callback ( err , data ) ;
826+ } ;
827+
828+ // 添加上传任务
829+ var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile' ;
830+ if ( api === 'putObject' ) {
831+ params . Body = isDir ? '' : fs . createReadStream ( params . FilePath ) ;
832+ params . Body . isSdkCreated = true ;
838833 }
834+ taskList . push ( {
835+ api : api ,
836+ params : params ,
837+ callback : onFileFinish ,
838+ } ) ;
839+ self . _addTasks ( taskList ) ;
839840 } ) ;
840841}
841842
@@ -873,61 +874,58 @@ function uploadFiles(params, callback) {
873874 var count = params . files . length ;
874875 util . each ( params . files , function ( fileParams , index ) {
875876 fs . stat ( fileParams . FilePath , function ( err , stat ) {
876- try {
877- var isDir = stat . isDirectory ( ) ;
878- var FileSize = fileParams . ContentLength = stat . size || 0 ;
879- var fileInfo = { Index : index , TaskId : '' } ;
877+ var isDir = stat ? stat . isDirectory ( ) : false ;
878+ var FileSize = fileParams . ContentLength = stat ? stat . size : 0 ;
879+ var fileInfo = { Index : index , TaskId : '' } ;
880880
881- // 更新文件总大小
882- TotalSize += FileSize ;
881+ // 更新文件总大小
882+ TotalSize += FileSize ;
883883
884- // 整理 option,用于返回给回调
885- util . each ( fileParams , function ( v , k ) {
886- if ( typeof v !== 'object' && typeof v !== 'function' ) {
887- fileInfo [ k ] = v ;
888- }
889- } ) ;
884+ // 整理 option,用于返回给回调
885+ util . each ( fileParams , function ( v , k ) {
886+ if ( typeof v !== 'object' && typeof v !== 'function' ) {
887+ fileInfo [ k ] = v ;
888+ }
889+ } ) ;
890890
891- // 处理单个文件 TaskReady
892- var _onTaskReady = fileParams . onTaskReady ;
893- var onTaskReady = function ( tid ) {
894- fileInfo . TaskId = tid ;
895- _onTaskReady && _onTaskReady ( tid ) ;
896- } ;
897- fileParams . onTaskReady = onTaskReady ;
891+ // 处理单个文件 TaskReady
892+ var _onTaskReady = fileParams . onTaskReady ;
893+ var onTaskReady = function ( tid ) {
894+ fileInfo . TaskId = tid ;
895+ _onTaskReady && _onTaskReady ( tid ) ;
896+ } ;
897+ fileParams . onTaskReady = onTaskReady ;
898898
899- // 处理单个文件进度
900- var PreAddSize = 0 ;
901- var _onProgress = fileParams . onProgress ;
902- var onProgress = function ( info ) {
903- TotalFinish = TotalFinish - PreAddSize + info . loaded ;
904- PreAddSize = info . loaded ;
905- _onProgress && _onProgress ( info ) ;
906- onTotalProgress ( { loaded : TotalFinish , total : TotalSize } ) ;
907- } ;
908- fileParams . onProgress = onProgress ;
899+ // 处理单个文件进度
900+ var PreAddSize = 0 ;
901+ var _onProgress = fileParams . onProgress ;
902+ var onProgress = function ( info ) {
903+ TotalFinish = TotalFinish - PreAddSize + info . loaded ;
904+ PreAddSize = info . loaded ;
905+ _onProgress && _onProgress ( info ) ;
906+ onTotalProgress ( { loaded : TotalFinish , total : TotalSize } ) ;
907+ } ;
908+ fileParams . onProgress = onProgress ;
909909
910- // 处理单个文件完成
911- var _onFileFinish = fileParams . onFileFinish ;
912- var onFileFinish = function ( err , data ) {
913- _onFileFinish && _onFileFinish ( err , data ) ;
914- onTotalFileFinish && onTotalFileFinish ( err , data , fileInfo ) ;
915- } ;
910+ // 处理单个文件完成
911+ var _onFileFinish = fileParams . onFileFinish ;
912+ var onFileFinish = function ( err , data ) {
913+ _onFileFinish && _onFileFinish ( err , data ) ;
914+ onTotalFileFinish && onTotalFileFinish ( err , data , fileInfo ) ;
915+ } ;
916916
917- // 添加上传任务
918- var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile' ;
919- if ( api === 'putObject' ) {
920- fileParams . Body = isDir ? '' : fs . createReadStream ( fileParams . FilePath ) ;
921- fileParams . Body . isSdkCreated = true ;
922- }
923- taskList . push ( {
924- api : api ,
925- params : fileParams ,
926- callback : onFileFinish ,
927- } ) ;
928- -- count === 0 && self . _addTasks ( taskList ) ;
929- } catch ( e ) {
917+ // 添加上传任务
918+ var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile' ;
919+ if ( api === 'putObject' ) {
920+ fileParams . Body = isDir ? '' : fs . createReadStream ( fileParams . FilePath ) ;
921+ fileParams . Body . isSdkCreated = true ;
930922 }
923+ taskList . push ( {
924+ api : api ,
925+ params : fileParams ,
926+ callback : onFileFinish ,
927+ } ) ;
928+ -- count === 0 && self . _addTasks ( taskList ) ;
931929 } ) ;
932930 } ) ;
933931}
0 commit comments