Spaces 中的 Cookie 限制
在 Hugging Face Spaces 中,应用程序在使用 Cookie 时存在某些限制。这主要是因为 Spaces 页面的结构 (https://huggingface.co/spaces/<user>/<app>
),其中包含托管在不同域 (*.hf.space
) 上的应用程序,并位于 iframe 内。出于安全原因,现代浏览器倾向于限制来自 iframe 页面(其托管域与父页面不同)的 Cookie 使用。
使用 Docker SDK 托管 Streamlit 应用程序的影响
使用 Docker SDK 托管 Streamlit 应用程序时,这些 Cookie 限制可能会成为问题。默认情况下,Streamlit 会启用基于 Cookie 的 XSRF 保护。因此,某些向服务器提交数据的组件(例如 st.file_uploader()
)在限制 Cookie 使用的 HF Spaces 上将无法正常工作。
要解决此问题,您需要将 Streamlit 中的 server.enableXsrfProtection
选项设置为 false
。有两种方法可以做到这一点
命令行参数:在运行 Streamlit 应用程序时,可以将此选项指定为命令行参数。以下是一个示例命令
streamlit run app.py --server.enableXsrfProtection false
配置文件:或者,您可以在 Streamlit 配置文件
.streamlit/config.toml
中指定此选项。您可以这样编写它[server] enableXsrfProtection = false
当您使用 Streamlit SDK 时,您无需担心这个问题,因为 SDK 会为您处理。
< > 在 GitHub 上更新