@@ -144,7 +144,7 @@ function sliceUploadFile(params, callback) {
144144 if ( FileSize === 0 ) {
145145 params . Body = '' ;
146146 params . ContentLength = 0 ;
147- params . _OnlyUploadNotAddTask = true ;
147+ params . SkipTask = true ;
148148 self . putObject ( params , function ( err , data ) {
149149 if ( err ) {
150150 return callback ( err ) ;
@@ -657,33 +657,38 @@ function uploadSliceItem(params, callback) {
657657 ContentLength = end - start ;
658658 }
659659
660- var PartItem = UploadData . PartList [ PartNumber - 1 ] ;
661- Async . retry ( ChunkRetryTimes , function ( tryCallback ) {
662- if ( ! self . _isRunningTask ( TaskId ) ) return ;
663- var Body = util . fileSlice ( FilePath , start , end ) ;
664- self . multipartUpload ( {
665- TaskId : TaskId ,
666- Bucket : Bucket ,
667- Region : Region ,
668- Key : Key ,
669- ContentLength : ContentLength ,
670- PartNumber : PartNumber ,
671- UploadId : UploadData . UploadId ,
672- ServerSideEncryption : ServerSideEncryption ,
673- Body : Body ,
674- onProgress : params . onProgress
660+ var md5Body = util . fileSlice ( FilePath , start , end ) ;
661+ util . getFileMd5 ( md5Body , function ( err , md5 ) {
662+ var contentMd5 = md5 ? util . binaryBase64 ( md5 ) : '' ;
663+ var PartItem = UploadData . PartList [ PartNumber - 1 ] ;
664+ Async . retry ( ChunkRetryTimes , function ( tryCallback ) {
665+ if ( ! self . _isRunningTask ( TaskId ) ) return ;
666+ var Body = util . fileSlice ( FilePath , start , end ) ;
667+ self . multipartUpload ( {
668+ TaskId : TaskId ,
669+ Bucket : Bucket ,
670+ Region : Region ,
671+ Key : Key ,
672+ ContentLength : ContentLength ,
673+ PartNumber : PartNumber ,
674+ UploadId : UploadData . UploadId ,
675+ ServerSideEncryption : ServerSideEncryption ,
676+ Body : Body ,
677+ onProgress : params . onProgress ,
678+ ContentMD5 : contentMd5 ,
679+ } , function ( err , data ) {
680+ if ( ! self . _isRunningTask ( TaskId ) ) return ;
681+ if ( err ) {
682+ return tryCallback ( err ) ;
683+ } else {
684+ PartItem . Uploaded = true ;
685+ return tryCallback ( null , data ) ;
686+ }
687+ } ) ;
675688 } , function ( err , data ) {
676689 if ( ! self . _isRunningTask ( TaskId ) ) return ;
677- if ( err ) {
678- return tryCallback ( err ) ;
679- } else {
680- PartItem . Uploaded = true ;
681- return tryCallback ( null , data ) ;
682- }
690+ return callback ( err , data ) ;
683691 } ) ;
684- } , function ( err , data ) {
685- if ( ! self . _isRunningTask ( TaskId ) ) return ;
686- return callback ( err , data ) ;
687692 } ) ;
688693}
689694
0 commit comments