mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-14 02:45:53 +08:00
fix: enhance file upload error handling and update base error class (#12132)
Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
parent
e765d8e69e
commit
be7877f526
@ -8,12 +8,16 @@ from werkzeug.exceptions import NotFound
|
|||||||
import services.dataset_service
|
import services.dataset_service
|
||||||
from controllers.common.errors import FilenameNotExistsError
|
from controllers.common.errors import FilenameNotExistsError
|
||||||
from controllers.service_api import api
|
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 (
|
from controllers.service_api.dataset.error import (
|
||||||
ArchivedDocumentImmutableError,
|
ArchivedDocumentImmutableError,
|
||||||
DocumentIndexingError,
|
DocumentIndexingError,
|
||||||
NoFileUploadedError,
|
|
||||||
TooManyFilesError,
|
|
||||||
)
|
)
|
||||||
from controllers.service_api.wraps import DatasetApiResource, cloud_edition_billing_resource_check
|
from controllers.service_api.wraps import DatasetApiResource, cloud_edition_billing_resource_check
|
||||||
from core.errors.error import ProviderTokenNotInitError
|
from core.errors.error import ProviderTokenNotInitError
|
||||||
@ -238,13 +242,18 @@ class DocumentUpdateByFileApi(DatasetApiResource):
|
|||||||
if not file.filename:
|
if not file.filename:
|
||||||
raise FilenameNotExistsError
|
raise FilenameNotExistsError
|
||||||
|
|
||||||
upload_file = FileService.upload_file(
|
try:
|
||||||
filename=file.filename,
|
upload_file = FileService.upload_file(
|
||||||
content=file.read(),
|
filename=file.filename,
|
||||||
mimetype=file.mimetype,
|
content=file.read(),
|
||||||
user=current_user,
|
mimetype=file.mimetype,
|
||||||
source="datasets",
|
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]}}}
|
data_source = {"type": "upload_file", "info_list": {"file_info_list": {"file_ids": [upload_file.id]}}}
|
||||||
args["data_source"] = data_source
|
args["data_source"] = data_source
|
||||||
# validate args
|
# validate args
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
class BaseServiceError(Exception):
|
class BaseServiceError(ValueError):
|
||||||
def __init__(self, description: Optional[str] = None):
|
def __init__(self, description: Optional[str] = None):
|
||||||
self.description = description
|
self.description = description
|
||||||
|
Loading…
x
Reference in New Issue
Block a user