Используйте UploadFile в FastAPI как обычный файл.Python

Программы на Python
Ответить
Anonymous
 Используйте UploadFile в FastAPI как обычный файл.

Сообщение Anonymous »

Необходимость состоит в том, чтобы загрузить файл в конечную точку FASTAPI, преобразовать его в Markdown и сохранить текст в Redis (файлы размером до 4 МБ). < /p>
Единственная логика i обнаружил, что до сих пор значит загрузить файл в качестве FileUpload, прочитать содержимое, сохранить его на диск с правильным расширением, перенесите этот путь к библиотеке https://github.com/microsoft/markitdown, прочитайте этот файл Markdow Затем передайте его Redis. Слишком много ввода /вывода.
Есть ли способ сделать все это в памяти? файлы) < /p>
@router.post("/upload")
async def uploadPost(filepond: UploadFile = File()):
"""
Convert a textual file to markdown.
Store in Redis
"""
# Create a temporary file to save the uploaded content
# for sake of simplicity I use txt for everything
with NamedTemporaryFile(delete=False,suffix=".txt") as temp_file:
temp_file_path = temp_file.name
content = await filepond.read()
temp_file.write(content)
temp_file.close()

md = MarkItDown()
result = md.convert(temp_file_path)
redis.setex("some key", 3600, result.text_content)

os.remove(temp_file_path)



Подробнее здесь: https://stackoverflow.com/questions/793 ... ormal-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»