ホームページ >バックエンド開発 >Python チュートリアル >FastAPI を使用してファイルをアップロードすると、file2store 変数が空になるのはなぜですか?
FastAPI でファイルをアップロードするときに空の File2Store 変数を解決する方法
FastAPI 経由でファイルをアップロードしようとすると、空の file2store 変数が発生する場合がありますドキュメントのガイドラインに従っているにもかかわらず。この問題に対処するには、次のようないくつかの手順を実行できます。
1. python-multipart をインストールします:
アップロードされたファイルをフォーム データとして解析するために必要なため、python-multipart がインストールされていることを確認します。次のコマンドを使用します:
pip install python-multipart
2. .file 属性と def エンドポイントを使用します:
from fastapi import File, UploadFile @app.post("/upload") def upload(file: UploadFile = File(...)): # Get actual Python file and read/write contents contents = file.file.read() with open(file.filename, 'wb') as f: f.write(contents)
注: サーバーのブロックを防ぐため、この場合は async def ではなく def を使用してエンドポイントを定義します。
3. async def エンドポイントによる非同期読み取り/書き込み:
async def を使用する必要がある場合は、この回答で示されているように、内容の読み取りと書き込みに非同期メソッドを使用します。
4.大きなファイルのチャンクの処理:
アップロードされたファイルが使用可能な RAM より大きい場合は、提供されたコード例に示すように、ファイルをチャンク単位でメモリにロードし、データを一度に 1 チャンクずつ処理します。 .
複数のファイルのアップロード:
複数のファイルを 1 つのファイルとしてアップロードするにはFastAPI でリストを作成するには、次のガイドラインに従ってください:
from fastapi import File, UploadFile from typing import List # For a single file, use: # @app.post("/upload") def upload(file: List[UploadFile] = File(...)): # For a list of files, use: # @app.post("/upload") async def upload_multiple(files: List[UploadFile] = File(...)):
要約すると、python-multipart をインストールし、UploadFile オブジェクトの .file 属性を使用し、大きなファイルのチャンクを処理し、必要に応じて非同期操作を考慮することで、 FastAPI を使用してファイルをアップロードするときに空の file2store 変数の問題を効果的に解決できます。
以上がFastAPI を使用してファイルをアップロードすると、file2store 変数が空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。