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

Strapi生产环境下无法将图片上传至Cloudinary

Strapi部署到Railway后无法上传文件至Cloudinary的排查方案

核心排查方向

1. 环境变量配置问题

  • Railway上的环境变量是否和本地完全一致?尤其是Cloudinary的CLOUDINARY_NAME、CLOUDINARY_KEY、CLOUDINARY_SECRET,注意不要有多余空格,复制时带空格会直接导致认证失败。
  • 检查是否设置了STRAPI_ADMIN_BACKEND_URL,部署后这个变量需要指向Railway的公网域名,而非localhost,否则会出现跨域或路径错误。

2. Cloudinary的安全设置

  • 登录Cloudinary控制台,进入Settings > Security > Allowed fetch domains,添加Railway的公网域名(如your-project.up.railway.app),避免域名白名单限制导致上传失败。
  • 确认当前API密钥拥有upload权限(默认配置包含该权限,若手动修改过需核实)。

3. Railway与Strapi的网络配置

  • 检查config/server.js中Strapi是否监听0.0.0.0端口,正确配置示例:
    module.exports = ({ env }) => ({
      host: env('HOST', '0.0.0.0'),
      port: env.int('PORT', 1337),
      app: {
        keys: env.array('APP_KEYS'),
      },
    });
    
  • 确认Railway的服务端口设置为1337(或你配置的端口),且防火墙未限制出站请求到Cloudinary的443端口(默认开放,可在Railway网络设置中确认)。

4. Strapi上传插件配置

  • 检查config/plugins.js中Cloudinary配置是否正确读取环境变量,示例配置:
    module.exports = ({ env }) => ({
      upload: {
        config: {
          provider: 'cloudinary',
          providerOptions: {
            cloud_name: env('CLOUDINARY_NAME'),
            api_key: env('CLOUDINARY_KEY'),
            api_secret: env('CLOUDINARY_SECRET'),
          },
          actionOptions: {
            upload: {},
            delete: {},
          },
        },
      },
    });
    
  • 确保部署时未硬编码本地配置值,完全依赖环境变量。

5. 日志排查

  • 在Railway控制台查看Strapi运行日志,搜索upload或cloudinary相关错误信息,比如认证失败、网络超时等,日志会直接定位问题。
  • 若无明显错误,可开启Strapi调试模式:设置环境变量DEBUG=strapi:*,重新部署后查看详细日志。

快速验证步骤

  1. 在Railway环境变量页面,手动重新输入Cloudinary密钥信息,避免复制粘贴的隐藏字符问题。
  2. 用Postman直接调用Strapi文件上传接口(POST /api/upload),查看返回的错误信息,比后台界面操作更易定位问题。

内容的提问来源于stack exchange,提问作者Johan Garcia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:10:09