@@ -371,15 +371,17 @@ - (void)startMultiUpload {
371371 return nil ;
372372 }
373373 NSURL *url = (NSURL *)self.body ;
374- self.dataContentLength = QCloudFileSize (url.relativePath );
374+ if ([self .body isKindOfClass: NSURL .class]){
375+ self.dataContentLength = QCloudFileSize (url.relativePath );
376+ }
375377 int64_t restContentLength = self.dataContentLength - uploadedSize;
376378 // 便宜的起始位置
377379 int64_t offset = uploadedSize;
378380 for (int i = startPartNumber;; i++) {
379381 int64_t slice = 0 ;
380- NSUInteger maxSlice = ceil (QCloudFileSize (url. relativePath ) * 1.0 / (10000 ));
382+ NSUInteger maxSlice = ceil (self. dataContentLength * 1.0 / (10000 ));
381383 NSUInteger uploadSliceLength = self.sliceSize > 10 ? self.sliceSize : kQCloudCOSXMLUploadSliceLength ;
382- uploadSliceLength = ( QCloudFileSize (url. relativePath ) * 1.0 / uploadSliceLength) > 10000 ? maxSlice : uploadSliceLength;
384+ uploadSliceLength = self. dataContentLength * 1.0 / uploadSliceLength > 10000 ? maxSlice : uploadSliceLength;
383385 if (restContentLength >= uploadSliceLength) {
384386 slice = uploadSliceLength;
385387 } else {
@@ -565,14 +567,12 @@ - (void)finishUpload:(NSString *)uploadId {
565567 NSLog (@" finishUpload canceled = %d " ,self.canceled ?1 :0 );
566568 return ;
567569 }
568- NSInteger fileSize = QCloudFileSize (url.relativePath );
569- if (fileSize != self.dataContentLength || !self.uploadBodyIsCompleted ) {
570+ if (!self.uploadBodyIsCompleted ){
570571 NSError *error = [NSError qcloud_errorWithCode: QCloudNetworkErrorCodeImCompleteData
571572 message: @" DataIntegrityError分片:文件大小与原始文件大小不一致,请检查文件在上传的过程中是否发生改变" ];
572573 [self onError: error];
573574 return ;
574575 }
575-
576576 QCloudCompleteMultipartUploadRequest *complete = [QCloudCompleteMultipartUploadRequest new ];
577577 complete.enableQuic = self.enableQuic ;
578578 complete.object = self.object ;
0 commit comments