Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dacon
- 백준
- 파이썬
- 자연어처리
- Kaggle
- SW Expert Academy
- 편스토랑 우승상품
- programmers
- 프로그래머스 파이썬
- Docker
- Real or Not? NLP with Disaster Tweets
- 우분투
- 프로그래머스
- Baekjoon
- 금융문자분석경진대회
- 맥북
- 더현대서울 맛집
- AI 경진대회
- 캐치카페
- 데이콘
- ubuntu
- Git
- github
- gs25
- hackerrank
- leetcode
- ChatGPT
- 편스토랑
- PYTHON
- 코로나19
Archives
- Today
- Total
솜씨좋은장씨
[FastAPI] Base64 형식으로 파일을 요청 받고 활용하는 방법 (Python) 본문
728x90
반응형
이번에 API 개발을 진행하면서
base64형식으로 인코딩한 pdf파일을 request에 포함시켜 API 요청으로 받아 이를 활용하여 하는 작업이 있었습니다.
이번 글에서는 FastAPI에서 base64 형태로 인코딩된 값을 input으로 받고
이 값을 활용는 방법에 대해서 적어보려합니다.
먼저 BaseModel을 상속하여 request와 response 형식을 지정하는 class를 만들어 줍니다.
from pydantic import BaseModel
class Base64Request(BaseModel):
base64_file: str
class Base64Response(BaseModel):
response_code: str
response_message: str
이 형식으로 요청을 받은 base64파일을 활용하는 API를 작성합니다.
import base64
@app.post("/base64file", response_model=Base64Response)
async def use_base64file(request: Base64Request):
file_content = request.base64_file
base64_content = base64.encode(file_content)
use_content(content=base64_content)
response = Base64Response(
response_code="200",
response_message="OK"
).dict()
return response
request로 받은 파일은 base64.encode를 통해 base64 형식으로 바꾼 다음 활용하면 됩니다.
그럼 이 API 에 요청값은 어떻게 만드느냐!
from base64 import b64encode
import requests
import json
with open(f"./file_path/{file_name}", 'rb') as file:
file_content = b64encode(file.read())
base64_file = file_content.decode('utf-8')
base64_request = {
"base64_file": base64_file
}
def request_function(url, data):
url_req = requests.post(url=url, data=json.dumps(data))
return url_req.text
위와 같이 파일을 open 한 뒤 해당 파일의 값을 base64 값으로 인코딩 하고 이를 utf-8로 디코딩 한 값을
request에 넘겨주면 됩니다.
'Programming > Python' 카테고리의 다른 글
Comments