使用Streamlit实现文件上传至Azure Blob Storage
使用Streamlit实现文件上传至Azure存储容器
完全可以实现这个需求,下面是一套可直接运行的实操方案:
步骤1:安装依赖包
先安装所需的Python库:
pip install streamlit azure-storage-blob
步骤2:配置Azure存储凭证
推荐通过环境变量存储Azure存储连接字符串(避免硬编码泄露敏感信息):
- Windows:
set AZURE_STORAGE_CONNECTION_STRING="你的连接字符串" - macOS/Linux:
export AZURE_STORAGE_CONNECTION_STRING="你的连接字符串"
仅测试场景下可直接在代码中定义连接字符串,生产环境强烈不推荐。
步骤3:编写Streamlit应用代码
创建app.py文件,内容如下:
import streamlit as st from azure.storage.blob import BlobServiceClient import os # 初始化Azure Blob服务客户端 connection_string = os.getenv("AZURE_STORAGE_CONNECTION_STRING") blob_service_client = BlobServiceClient.from_connection_string(connection_string) # 目标容器名称(需提前在Azure存储中创建) container_name = "your-container-name" # Streamlit页面布局 st.title("文件上传至Azure存储") uploaded_file = st.file_uploader("选择要上传的文件", type=["txt", "pdf", "png", "jpg"]) if uploaded_file is not None: # 展示文件基础信息 st.write(f"文件名: {uploaded_file.name}") st.write(f"文件大小: {uploaded_file.size} bytes") # 上传触发按钮 if st.button("上传至Azure存储"): try: # 获取容器客户端 container_client = blob_service_client.get_container_client(container_name) # 执行上传(overwrite=True表示覆盖同名文件) container_client.upload_blob(name=uploaded_file.name, data=uploaded_file, overwrite=True) st.success("文件上传成功!") except Exception as e: st.error(f"上传失败: {str(e)}")
关键注意事项
- 需提前在Azure存储控制台创建好目标容器,名称要与代码中
container_name匹配 - Streamlit默认限制单文件上传大小为200MB,如需扩容可启动时添加参数:
streamlit run app.py --server.maxUploadSize=1024(示例设置为1GB) - 生产环境务必用环境变量或Azure Key Vault管理凭证,禁止硬编码敏感信息
内容的提问来源于stack exchange,提问作者Thiziri
相关产品推荐
相关产品推荐

