\

FastAPIは、Pythonで高速なAPIを構築するためのモダンで高速なWebフレームワークです。この記事では、FastAPIを使用してファイルをアップロードする方法について説明します。

FastAPIでのファイルアップロード

FastAPIを使用してファイルをアップロードするための基本的なコードは以下の通りです。

from fastapi import FastAPI, File, UploadFile

app = FastAPI()

@app.post("/files/")
async def create_file(file: bytes = File(...)):
    return {"file_size": len(file)}

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    return {"filename": file.filename}

このコードでは、/files//uploadfile/の2つのエンドポイントが作成されます。前者はファイルのバイトデータを受け取り、そのサイズを返します。後者はアップロードされたファイルの情報を受け取り、そのファイル名を返します。

ファイルのアップロードと保存

FastAPIでは、アップロードされたファイルを一時的に保存することも可能です。以下にその例を示します。

from fastapi import FastAPI, File, UploadFile, Form
import shutil
from pathlib import Path
from tempfile import NamedTemporaryFile

app = FastAPI()

@app.post("/saveuploadfile/")
async def save_upload_file_tmp(fileb: UploadFile=File(...), token:str=Form(...)):
    tmp_path:Path = ""
    try:
        suffix = Path(fileb.filename).suffix
        with NamedTemporaryFile(delete=False, suffix=suffix) as tmp:
            shutil.copyfileobj(fileb.file, tmp)
            tmp_path = Path(tmp.name)
    finally:
        fileb.file.close()
    return {
        "filename": fileb.filename,
        "temporary_filepath": tmp_path,
        "token": token,
        "fileb_content_type": fileb.content_type,
    }

このコードでは、/saveuploadfile/エンドポイントが作成され、アップロードされたファイルを一時的なファイルとして保存します。そして、そのファイル名、一時ファイルのパス、トークン、およびファイルのコンテンツタイプを返します。

以上が、PythonとFastAPIを使用したファイルアップロードの基本的な方法です。FastAPIは非常に強力で柔軟なフレームワークであり、これらの基本的な機能を使用して、さまざまな種類のAPIを簡単に構築することができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です