こんにちは、JS2IIUです。
Streamlitでアプリを開発していると、ファイルをアップロードする場面が多くあります。しかし、st.file_uploader を使ってファイルをアップロードする際には、デフォルトで1ファイル200MBまでの制限があるため、大きなファイルを扱う場合に問題になることがあります。
この記事では、このアップロード容量制限を解除(変更)する方法について、ローカル環境とStreamlit Cloudでの設定方法の両方を、具体的なコード例とともに解説します。
✅ ファイルアップロードの制限について
Streamlitの公式ドキュメントによると、次のように記載されています:
By default, uploaded files are limited to 200 MB each. You can configure this using the
server.maxUploadSizeconfig option.
(デフォルトでは、アップロードされる各ファイルのサイズは200MBに制限されています。この制限はserver.maxUploadSize設定で変更できます。)
🔧 アップロード制限を変更する方法(ローカル環境)
手順1:設定ファイル config.toml を作成・編集
まず、Streamlitの設定ファイルを編集します。通常は以下の場所に作成します:
- macOS / Linux:
~/.streamlit/config.toml - Windows:
%userprofile%\.streamlit\config.toml
内容は以下のように記述します:
# ~/.streamlit/config.toml
[server]
maxUploadSize = 1024 # 単位はMB(この例では1GB)これで、アップロード可能なファイルサイズの上限が1024MB(1GB)になります。
💡 設定ファイルが存在しない場合は、自分で
.streamlit/config.tomlを新しく作成してください。
手順2:Streamlitアプリを再起動
設定変更を反映させるには、アプリを再起動します。
streamlit run your_app.py🧪 動作確認のためのサンプルコード
import streamlit as st
st.title("ファイルアップロードテスト")
uploaded_file = st.file_uploader("ファイルをアップロードしてください", type=["csv", "xlsx", "zip", "mp4"])
if uploaded_file is not None:
st.write("ファイル名:", uploaded_file.name)
st.write("ファイルサイズ(バイト):", len(uploaded_file.getbuffer()))☁ Streamlit Cloudで容量制限を変更する方法
ローカルとは異なり、Streamlit Cloudでは ~/.streamlit/config.toml は無効です。その代わりに、アプリのルートフォルダに .streamlit/config.toml を含めてGitHubにアップロードする必要があります。
手順1:プロジェクト構成に .streamlit/config.toml を追加
プロジェクト構成例:
your_project/
├── app.py
└── .streamlit/
└── config.tomlconfig.toml の内容:
[server]
maxUploadSize = 1024⚠
.streamlitフォルダ名の先頭にドット (.) をつけることを忘れずに!
手順2:GitHubにプッシュ
git add .streamlit/config.toml
git commit -m "Add config.toml to increase upload size"
git push origin main手順3:Streamlit Cloudで再デプロイ
- Streamlit Cloud にアクセス
- アプリを選択
- 「⚙設定」→「Rerun(再デプロイ)」を実行
これでアップロード容量の上限が変更されます。
Streamlit Cloudでの参考事例
ファイルアップローダーの容量を変更した事例として、ADIFファイルをアップロードしてグラフを表示させるツールを紹介します。
🔍 補足:現在の設定を確認する方法
アプリ内で現在の設定値を確認したい場合は、次のコードを使います:
import streamlit as st
st.write("現在のアップロード制限(MB):",
st.runtime.get_current().config.get_option("server.maxUploadSize"))⚠ 注意点
- アップロード可能なサイズ = ブラウザ制限 + メモリ制限 + ネットワーク制限 に依存します。
- 極端に大きなファイル(数GB以上)は、アップロード中にブラウザやサーバーがタイムアウトすることがあります。
- Streamlit Cloud では無料プランにメモリ使用量上限(例:1GB)があるため、実際にアップロードできるファイルサイズは制限される場合があります。
✅ まとめ
| 環境 | 設定方法 |
|---|---|
| ローカル | ~/.streamlit/config.toml に maxUploadSize を記述 |
| Streamlit Cloud | .streamlit/config.toml をプロジェクト内に配置し、GitHub経由でデプロイ |
📚 参考リンク
当ブログのStreamlit関連記事一覧です。こちらも参考にしていただけますと幸いです。ぜひご覧ください。

Streamlitでは簡単にファイルアップロード機能が実装できますが、容量制限の設定を正しく行うことで、より大きなデータを扱える柔軟なアプリにすることが可能です。ぜひ、アプリの用途に応じて設定を見直してみてください!
最後まで読んでいただきありがとうございました。


コメント