| 
					
				 | 
			
			
				@@ -8,12 +8,16 @@ from werkzeug.exceptions import NotFound 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import services.dataset_service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from controllers.common.errors import FilenameNotExistsError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from controllers.service_api import api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from controllers.service_api.app.error import ProviderNotInitializeError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from controllers.service_api.app.error import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FileTooLargeError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NoFileUploadedError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ProviderNotInitializeError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TooManyFilesError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UnsupportedFileTypeError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from controllers.service_api.dataset.error import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ArchivedDocumentImmutableError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     DocumentIndexingError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NoFileUploadedError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    TooManyFilesError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from controllers.service_api.wraps import DatasetApiResource, cloud_edition_billing_resource_check 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.errors.error import ProviderTokenNotInitError 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -238,13 +242,18 @@ class DocumentUpdateByFileApi(DatasetApiResource): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if not file.filename: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 raise FilenameNotExistsError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            upload_file = FileService.upload_file( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                filename=file.filename, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                content=file.read(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                mimetype=file.mimetype, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                user=current_user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                source="datasets", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                upload_file = FileService.upload_file( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    filename=file.filename, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    content=file.read(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mimetype=file.mimetype, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    user=current_user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    source="datasets", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            except services.errors.file.FileTooLargeError as file_too_large_error: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                raise FileTooLargeError(file_too_large_error.description) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            except services.errors.file.UnsupportedFileTypeError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                raise UnsupportedFileTypeError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             data_source = {"type": "upload_file", "info_list": {"file_info_list": {"file_ids": [upload_file.id]}}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             args["data_source"] = data_source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # validate args 
			 |