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

Dotnet 5 Web API本地运行正常 生产环境上传视频报文件找不到异常

问题根因

报错中出现的/Users/thiagodias/Desktop/是macOS系统专属的本地路径,你当前的部署环境为Ubuntu+Docker,不存在该目录结构,即便你手动保持路径命名一致,Docker容器默认也无法访问宿主机器本地桌面的文件,因此触发文件找不到异常。

解决思路

  • 修正文件存储逻辑
    不要硬编码本地开发环境的绝对路径,也不要直接使用前端传递的文件路径。收到上传请求后,先将文件流写入部署环境专属的可访问目录(可通过配置项动态指定上传根目录,比如Docker容器内的/app/uploads路径),拿到服务端实际存储的有效路径后,再传递给Vimeo上传接口。
  • 调整Docker挂载配置
    如果视频文件存储在宿主Ubuntu机器上,运行容器时需添加目录挂载参数,将宿主的上传目录映射到容器内对应路径,示例:docker run -v /home/ubuntu/uploads:/app/uploads 你的镜像名,同时要给容器运行用户开通该目录的读写权限。
  • 补充Nginx配置
    你当前的Nginx配置缺少大文件上传支持,默认上传上限仅1M,会拦截视频上传请求,需要在server块中添加配置:
    client_max_body_size 2G; # 可根据你的最大视频大小调整阈值
    
    如果需要通过Nginx直接访问上传的视频文件,还要补充对应的静态资源location规则。
  • 修正代码逻辑
    检查UserService.cs中VimeoUpload方法的入参来源,确认生产环境不会带入本地开发时的硬编码测试路径。建议添加上传路径日志,上线前先打印调用Vimeo接口时传入的文件路径,确认和部署环境的目录结构匹配。
  • 权限校验
    确认.NET程序运行身份对上传存储目录有可读权限,调用FileInfo.Length时无读取权限也可能触发文件不存在的异常。

内容的提问来源于stack exchange,提问作者Thiago Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:54:03