0. 에러 원인파악
Streamlit 을 이용하여 업로드시 아래와 같이 413 에러가 발생하는 경우가 있다.
원인을 확인 해 보니 파일 업로드 용량 초과인 것으로 확인 되었다
여기서 주의할점은 streamlit 사용시 위와 같이 파일 용량 Limit는 200MB 로 적혀 있지만 해당 제한 안내는 텍스트 값이며, 실제 운영중인 서버의 업로드 용량 제한은 다르다는 것이다.
본 서비스는 Nginx 서버를 사용중으로 파일 업로드 용량 제한은 Nginx의 설정을 따른다
기본적으로 Nginx 서버의 업로드 용량 제한은 1MB 이다.
본 글에서는 Nginx 서버의 업로드 용량 변경 방법과, streamlit 에서 보여 주는 용량 Limit 텍스트 값 변경 하는 법을 소개 한다.
(혹시나 Nginx 서버가 아닌 다른 툴로 웹서비스를 하는 경우는 다른 방법으로 하셔야 합니다~)
1. 개발환경
Ubuntu 22.04
Nginx 1.18.0
2. Nginx 서버의 업로드 용량 변경 방법
우선 nginx.conf 파일을 다음과 같이 명령어를 이용하여 편집 합니다.
vi /etc/nginx/nginx.conf
(1) Nginx 서비스 전체에서 업로드 파일 용량 설정 변경
config 파일 내에 http 블록 안에서 설정하면, 모든 서버와 위치에 대한 기본값으로 설정됩니다.
http {
...
client_max_body_size 10M; # Nginx 서비스 전체에서 업로드용량 제한을 10M으로 하는 경우
...
}
(2) 특정 서버 블록에서만 업로드 파일 용량 설정 변경
특정 서버 블록에서만 이 설정을 적용하고 싶다면 아래와 같이 server 블록 내에서 설정합니다.
server {
...
client_max_body_size 10M; # 이 서버 블록 내에서만 10MB로 제한합니다.
...
}
위 방법을 적용 후 다시 Nginx서버에 적용을 해야 한다
sudo nginx -s reload
다시 파일을 업로드 해 보면 에러 없이 업로드가 되는것을 확인 할 수 있었다
3. Streamlit upload 파일에 표시되는 제한 용량값 변경하는 방법
Streamlit 업로드 컴포넌트에 표시되는 텍스트 값을 변경하기 위해서는 .streamlit/config.toml 에 있는 설정에 아래과 같은 내요을 추가 하면 된다
[server]
maxUploadSize = 10
이제 업로드 컴포넌트에 표기되는 limit 값이 변경된 것을 확인 할 수 있다.
'Streamlit' 카테고리의 다른 글
[Streamlit] 테마 (다크모드/라이트모드) 변경하기 (0) | 2024.12.29 |
---|