はじめに
この記事では、Windows 11環境でFastAPIを使って基本的なファイルアップロード機能を実装する方法を解説します。FastAPIは、Pythonで高速かつ効率的なWeb APIを構築するための現代的なフレームワークです。
目次
- 環境設定
- 基本的なファイルアップロード
- 動作確認の手順
- まとめ
1. 環境設定 (Windows 11向け)
まず、Windows 11でPythonとFastAPIの環境を設定します。
-
Pythonのインストール:
- Python公式サイトからWindows用のインストーラをダウンロードします。
- インストール時に「Add Python to PATH」にチェックを入れてください。
-
必要なパッケージのインストール:
コマンドプロンプトを管理者として実行し、以下のコマンドを入力します:pip install fastapi pip install python-multipart pip install uvicorn
-
開発環境の準備:
- Visual Studio CodeやPyCharmなどの開発環境をインストールすると便利です。
-
C:\Work
フォルダを作成します(存在しない場合)。
2. 基本的なファイルアップロード
以下は、単一のファイルをアップロードする基本的な実装です。ファイルをC:\Work\uploadsに保存するように設定しています。
from fastapi import FastAPI, File, UploadFile
import shutil
from pathlib import Path
app = FastAPI()
UPLOAD_DIR = Path(r"C:\Work\uploads")
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
try:
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
save_path = UPLOAD_DIR / file.filename
with save_path.open("wb") as buffer:
shutil.copyfileobj(file.file, buffer)
return {"filename": file.filename, "save_path": str(save_path)}
finally:
file.file.close()
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
この例では、アップロードされたファイルをC:\Work\uploads
フォルダに保存します。具体的には:
-
UPLOAD_DIR
変数を使用して、保存先ディレクトリをC:\Work\uploads
に設定しています。 -
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
で、指定したディレクトリが存在しない場合に自動的に作成します。 - ファイルは
C:\Work\uploads\[アップロードされたファイル名]
として保存されます。
注意点:
- アプリケーションを実行するユーザーが
C:\Work\uploads
ディレクトリに書き込み権限を持っていることを確認してください。
3. 動作確認の手順 (Windows 11向け)
Windows 11環境での動作確認手順は以下の通りです:
-
サーバーの起動:
- コマンドプロンプトを開きます(Windowsキー + R を押し、「cmd」と入力)。
- プロジェクトフォルダに移動し、以下のコマンドを実行します:
python -m uvicorn main:app --reload
-
SwaggerUIでのテスト:
- ブラウザ(Edge推奨)で
http://localhost:8000/docs
にアクセスします。 - FastAPIが自動生成したSwagger UIインターフェースが表示されます。
-
/uploadfile/
エンドポイントを選択します。 - "Try it out"ボタンをクリックし、ファイルを選択してアップロードします。
- ブラウザ(Edge推奨)で
-
コマンドプロンプト(cmd)でのテスト:
Windows 11のコマンドプロンプトを開き、以下のようなコマンドを使用してテストできます:curl -X POST "http://localhost:8000/uploadfile/" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@C:\path\to\your\file.jpg"
注意: Windows 10以降には
curl
コマンドが標準で含まれています。 -
結果の確認:
- アップロードが成功した場合、ファイル名や保存パスなどの情報がJSON形式で返されます。
- アップロードされたファイルは
C:\Work\uploads
フォルダに保存されます。以下の手順で確認できます:- エクスプローラーを開き、アドレスバーに
C:\Work\uploads
と入力します。 - フォルダ内にアップロードされたファイルが表示されます。
- エクスプローラーを開き、アドレスバーに
- また、コマンドプロンプトを使用して確認することもできます:
- コマンドプロンプトを開きます。
-
cd C:\Work\uploads
コマンドを実行してアップロードフォルダに移動します。 -
dir
コマンドを実行して、アップロードされたファイルを確認します。
4. まとめ
この記事では、FastAPIを使用して基本的なファイルアップロード機能を実装する方法を紹介しました。主なポイントは以下の通りです:
FastAPIを使用することで、簡単にファイルアップロード機能を実装できます。
アップロードされたファイルはC:\Work\uploadsフォルダに保存されます。
SwaggerUIやcurlを使用して、実装した機能のテストが簡単に行えます。
ファイルアップロード機能を実装する際は、セキュリティに注意を払うことが重要です。
実装後は、必ず動作確認を行い、期待通りに機能することを確認しましょう。
この基本的な実装を土台に、プロジェクトの要件に合わせてカスタマイズしていくことができます。ファイルアップロード機能は多くのWebアプリケーションで必要とされる機能であり、この知識が皆様のプロジェクトに役立つことを願っています。