You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Vercel部署的Flask项目中如何实现文件写入?

Flask + Vercel 实现文件写入的解决方案

问题原因

Vercel的无服务器运行环境是只读文件系统,你尝试在/var/task/api/uploads创建目录和写入文件的操作不被允许,这就是报错Errno 30 Read-only file system的核心原因。本地环境是你自己的机器,文件系统有完整读写权限,因此能正常运行。

以下是两种适配Vercel环境的解决方案:


方案一:使用Edge Config存储文本内容

Edge Config是Vercel提供的轻量级配置存储服务,适合存储小体积的文本内容(如单条字符串、JSON对象)。

  1. 在Vercel控制台创建Edge Config实例

    • 进入你的Vercel项目,切换到「Edge Config」选项卡
    • 创建新实例(例如命名为file-storage),并添加一个键值对(比如键设为1.txt,初始值可留空)
  2. 安装Edge Config Python SDK

    pip install vercel-edge-config
    
  3. 修改Flask路由代码

    from vercel_edge_config import EdgeConfig
    import os
    from flask import Flask
    
    app = Flask(__name__)
    
    # 从Vercel环境变量读取Edge Config连接字符串
    edge_config = EdgeConfig(os.environ.get('EDGE_CONFIG'))
    
    @app.route('/write', methods=['GET'])
    def write_to_edge_config():
        text = "hello world"
        # 将文本写入Edge Config的指定键
        edge_config.set('1.txt', text)
        # 可选:读取验证内容 content = edge_config.get('1.txt')
        return "ok"
    
  4. 配置Vercel环境变量

    • 进入项目「Settings」→「Environment Variables」
    • 添加变量EDGE_CONFIG,值为你的Edge Config实例的连接字符串(可在Edge Config控制台复制)

方案二:使用Vercel Blob存储文件

如果需要真正的文件存储(支持更大体积、多种文件格式),Vercel Blob是更合适的选择。

  1. 安装Vercel Blob Python SDK

    pip install vercel-blob
    
  2. 修改Flask路由代码

    from vercel_blob import put
    import os
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/write', methods=['GET'])
    def write_to_blob():
        text = "hello world"
        # 上传文本到Blob存储,指定文件名
        result = put(
            "1.txt",
            text.encode('utf-8'),
            access="public",  # 可选设置为private控制访问权限
            token=os.environ.get('BLOB_READ_WRITE_TOKEN')
        )
        # result会返回文件的访问URL、大小等信息
        return "ok"
    
  3. 配置Blob访问令牌

    • 进入Vercel控制台「Storage」→「Blob」,创建Blob存储实例
    • 生成「Read Write Token」,复制后添加到项目环境变量BLOB_READ_WRITE_TOKEN

注意事项

  • Edge Config适合存储小体积配置类文本,免费版有配额限制
  • Vercel Blob更适配传统文件存储场景,支持更大文件和多类型
  • 两种方案均无需操作本地文件系统,完全兼容Vercel无服务器环境

内容的提问来源于stack exchange,提问作者Adrian Botteon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 12:14:56