You need to enable JavaScript to run this app. VSCode App Service部署Flask应用因2GB ZIP限制失败 如何部署大型项目?
优惠活动
大模型
产品
解决方案
定价
更多

VSCode App Service部署Flask应用因2GB ZIP限制失败 如何部署大型项目?

Azure App Service 大型Flask项目部署解决方案

mysite: Offset to Central Directory cannot be held in an Int64.
该报错是由于你本地打包的ZIP包体积达2.22GB,超出了Azure App Service ZIP部署的默认单包大小限制(约2GB),过大的压缩包中央目录偏移量超出系统可处理的Int64范围,导致解压失败。

一、优先优化部署包体积(推荐优先操作)

Flask项目本身代码体积通常不会超过百兆,2GB+的包大概率包含冗余文件,可先通过以下方式压缩包体积:

  • 排除非必要部署文件:本地虚拟环境、缓存文件(__pycache__、.git目录)、测试数据集、未处理的原始静态资源等无关文件不要打包,部署前可通过.gitignore或者.deployment配置文件指定排除路径。
  • 依赖云端安装:不要把本地安装的依赖包(site-packages目录)一起打包,仅在项目根目录留存requirements.txt文件,Azure部署时会自动执行pip install -r requirements.txt安装依赖,可减少90%以上的包体积。
  • 大体积静态资源分离:项目内的大图片、音视频、AI模型文件等静态资源不要放进应用部署包,转存到对象存储服务后,应用内通过资源链接访问即可。

二、大型项目分步骤/增量部署方案

如果优化后部署包体积仍然较大,可采用以下方式替代单ZIP上传,支持多步拆分传输:

  • 代码增量部署:采用本地Git部署或CI/CD流水线部署,无需本地打包完整ZIP,仅向服务端推送变更的代码文件,服务端自动完成依赖安装、构建、部署全流程,不存在单包大小限制。
  • 容器化部署:将Flask应用打包为Docker镜像,镜像支持分层增量推送,仅需传输改动的镜像层,不会出现单文件过大的问题,推送至容器注册表后,App Service直接拉取镜像启动即可。
  • 分拆上传:如果需要保留原有部署逻辑,可先通过FTP/SSH工具将大体积的非代码文件上传到App Service的/home/site/wwwroot目录,全部上传完成后,再打包仅包含代码的小体积ZIP包走ZIP部署流程,ZIP部署默认只会覆盖同路径文件,不会删除提前上传的大文件。

临时大ZIP部署配置调整

如果确实需要一次性上传大体积ZIP包,可在App Service的配置页添加两条应用设置:

  • WEBSITE_RUN_FROM_PACKAGE=0:关闭默认的只读包运行模式
  • SCM_MAX_ZIP_UPLOAD_SIZE=3221225472:调整最大ZIP上传限制为3GB(可按需调整数值,单位为字节)
    配置保存后重启应用即可尝试重新部署,该方案仅作为临时应急使用,长期仍建议优化包体积或采用增量部署方案。

内容的提问来源于stack exchange,提问作者G. Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 03:48:01