Where does st.file_uploader store uploaded files and when do they get deleted?
当你使用st.file_uploader
上传文件时,数据会通过浏览器复制到Streamlit后端,并包含在Python内存中的BytesIO缓冲区中(即RAM,而不是磁盘)。数据将保留在RAM中,直到Streamlit应用程序从上到下重新运行,这在每次小部件交互时都会发生。如果你需要在运行之间保存上传的数据,那么你可以缓存它,以便Streamlit在重新运行之间保持它。
由于文件存储在内存中,一旦不再需要,它们会立即被删除。
这意味着当以下情况发生时,Streamlit 会从内存中移除一个文件:
- 用户上传另一个文件,替换原始文件
- 用户清除了文件上传器
- 用户关闭了他们上传文件的浏览器标签页
相关论坛帖子:
- https://discuss.streamlit.io/t/streamlit-sharing-fileupload-where-does-it-go/9267
- https://discuss.streamlit.io/t/how-to-update-the-uploaded-file-using-file-uploader/13512/
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。