Streamlit을 이용하여 프론트에서 업로드 된 영상을 DB서버에 저장한 후 해당 파일을 AI 서버에서 프로세스가 실행되도록 할 예정이다.

import streamlit as st
import requests
st.title("영상 업로드 테스트")
uploaded_file = st.file_uploader("파일을 선택해주세요.", type=['mp4']
if uploaded_file is not None:
files = {"file" : uploaded_file.getvalue()}
response = requests.post("http://localhost:5001/upload", files = files)
if response.ok:
st.success("영상이 성공적으로 업로드되었습니다.")
else:
st.error("업로드 실패")
from flask import Flask, request
app = Flas(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return 'No file', 400
file = request.files['file']
if file.filename== '':
return 'No selected file', 400
if file:
print("Received file:", file.filename)
return 'File recived', 200
if __name__ == '__main__':
app.run(host='0,0,0,0', debug=False, port=5001)
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return 'No file', 400
file = request.files['file']
if file.filename== '':
return 'No selected file', 400
if file:
file_name = file.filename
file_data = file.read() # read() 로 읽으면 바이너리로 읽힘
try:
connection = pymysql.connect(**db_config)
with connection.cursor() as cursor:
sql = "INSERT INTO Streamlit (video_name, video_test) VALUES (%s, %s)"
cursor.execute(sql, (file_name, file_data))
connection.commit()
return 'File successfully uploaded', 200
except Exception as e:
return f'An error occurred: {e}', 500
finally:
connection.close()