feat(file-upload): add support for optional file source parameter (#9554)
This commit is contained in:
@@ -2,7 +2,7 @@ import datetime
|
||||
import hashlib
|
||||
import uuid
|
||||
from collections.abc import Generator
|
||||
from typing import Union
|
||||
from typing import Literal, Union
|
||||
|
||||
from flask_login import current_user
|
||||
from werkzeug.datastructures import FileStorage
|
||||
@@ -28,7 +28,9 @@ PREVIEW_WORDS_LIMIT = 3000
|
||||
|
||||
class FileService:
|
||||
@staticmethod
|
||||
def upload_file(file: FileStorage, user: Union[Account, EndUser]) -> UploadFile:
|
||||
def upload_file(
|
||||
file: FileStorage, user: Union[Account, EndUser], source: Literal["datasets"] | None = None
|
||||
) -> UploadFile:
|
||||
# get file name
|
||||
filename = file.filename
|
||||
if not filename:
|
||||
@@ -36,11 +38,9 @@ class FileService:
|
||||
extension = filename.split(".")[-1]
|
||||
if len(filename) > 200:
|
||||
filename = filename.split(".")[0][:200] + "." + extension
|
||||
# read file content
|
||||
file_content = file.read()
|
||||
|
||||
# get file size
|
||||
file_size = len(file_content)
|
||||
if source == "datasets" and extension not in DOCUMENT_EXTENSIONS:
|
||||
raise UnsupportedFileTypeError()
|
||||
|
||||
# select file size limit
|
||||
if extension in IMAGE_EXTENSIONS:
|
||||
@@ -52,6 +52,11 @@ class FileService:
|
||||
else:
|
||||
file_size_limit = dify_config.UPLOAD_FILE_SIZE_LIMIT * 1024 * 1024
|
||||
|
||||
# read file content
|
||||
file_content = file.read()
|
||||
# get file size
|
||||
file_size = len(file_content)
|
||||
|
||||
# check if the file size is exceeded
|
||||
if file_size > file_size_limit:
|
||||
message = f"File size exceeded. {file_size} > {file_size_limit}"
|
||||
|
Reference in New Issue
Block a user