|
@@ -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
|