浏览代码

E2E verify file Size

Marino Faggiana 7 年之前
父节点
当前提交
2332139c46
共有 2 个文件被更改,包括 16 次插入1 次删除
  1. 3 0
      iOSClient/CCGlobal.h
  2. 13 1
      iOSClient/Networking/CCNetworking.m

+ 3 - 0
iOSClient/CCGlobal.h

@@ -257,6 +257,9 @@ extern NSString *const dav;
 #define k_activityDebugActionCapabilities               @"Capabilities Of Server"
 #define k_activityDebugActionEndToEndEncryption         @"End To End Encryption "
 
+// E2E
+#define k_max_filesize_E2E                              524288000   // 500 MB
+
 // -----------------------------------------------------------------------------------------------------------
 // -----------------------------------------------------------------------------------------------------------
 

+ 13 - 1
iOSClient/Networking/CCNetworking.m

@@ -839,8 +839,20 @@
     if ([CCUtility isFolderEncrypted:serverUrl account:_activeAccount]) {
         
         NSString *fileNameIdentifier;
+        NSError *error;
         
-        // id exists overwrite file else create a new encrypted filename
+        // Verify File Size
+        NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, fileName] error:&error];
+        NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
+        long long fileSize = [fileSizeNumber longLongValue];
+        
+        if (fileSize > k_max_filesize_E2E) {
+            // Error for uploadFileFailure
+            [[self getDelegate:uploadID] uploadFileSuccessFailure:fileName fileID:uploadID assetLocalIdentifier:assetLocalIdentifier serverUrl:serverUrl selector:selector selectorPost:selectorPost errorMessage:@"E2E Error file too big" errorCode:k_CCErrorInternalError];
+            return;
+        }
+        
+        // if exists overwrite file else create a new encrypted filename
         tableMetadata *overwriteMetadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND fileNameView = %@", _activeAccount, directoryID, fileName]];
         if (overwriteMetadata)
             fileNameIdentifier = overwriteMetadata.fileName;