【问题标题】:Strapi not uploading pictures to CloudinaryStrapi 不上传图片到 Cloudinary
【发布时间】:2022-01-12 03:46:10
【问题描述】:

更新:我安装了 Strapi 3.6.3 版,它运行良好

Strapi - Clouinary 连接对我不起作用。所以我正在将图片上传到 Stapi,但它们没有出现在 Clouinary 中。

在配置文件夹中,我创建了 plugins.js 文件,其内容如下:

module.exports = ({
  env
}) => ({
  // ...
  upload: {
     provider: 'cloudinary',
     providerOptions: {
        cloud_name: env('CLOUDINARY_NAME'),
        api_key: env('CLOUDINARY_KEY'),
        api_secret: env('CLOUDINARY_SECRET'),
     },
  },
  // ...
});

我已经安装了npm i strapi-provider-upload-cloudinary

然后将文件 .env 更改为

PORT=1337
CLOUDINARY_NAME="***"
CLOUDINARY_KEY="***"
CLOUDINARY_SECRET="***"```

Actually automatically following code added automatically:
```JWT_SECRET=*********
API_TOKEN_SALT=*********
JWT_SECRET=*********

可能是什么问题? CLOUDINARY_SECRET 应该在“引号”中吗?或在“引号”中或不带引号?

添加图片后的终端输出如下:

http://localhost:1337

[2021-12-07 02:10:14.702] http: POST /upload (261 ms) 200
[2021-12-07 02:10:14.744] http: GET /upload/files?sort=updatedAt:DESC&page=1&pageSize=10 (24 ms) 200
[2021-12-07 02:10:14.758] http: GET /uploads/thumbnail_Screenshot_2021_11_26_130226_11a95e81ea.png?width=1504&height=1258 (4 ms) 200

所有权限似乎都已设置...

还创建了extensions/upload/config/setting.json,内容如下:

    "provider": "cloudinary",
    "providerOptions": {     "cloud_name":"devert0mt",
      "api_key": "***",               
      "api_secret":"***"
    }
  }{
    "provider": "cloudinary",
    "providerOptions": {     "cloud_name":"devert0mt",
      "api_key": "***",               
      "api_secret":"***"
    }
  }```

【问题讨论】:

  • 你不应该公开发布你的 Cloudinary API Secret。我建议尽快更改您当前的访问密钥。这可以在 Cloudinary 仪表板上的安全选项卡上完成。
  • 我相信键应该不带引号。我赞同@RoeeBen-Ari 之前所说的:永远不要公开发布你的密钥。它们被称为密钥是有原因的...从 Cloudinary 获取新密钥并尽快删除您发布的密钥。

标签: strapi cloudinary


【解决方案1】:

如果你想使用最新版本的Strapi,v.4及以上版本,你需要将strapi provider package改为这个:

npm install @strapi/provider-upload-cloudinary --save

然后,您需要将config/plugins.js 中的plugins.js 文件更新为以下内容(请注意,它的结构与之前的包略有不同 - 所有内容都放在 config 对象中,而不是像以前版本那样上传):

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: {},
      },
    },
  },
  // ...
});

此外,如果您在 Strapi 仪表板上正确渲染图像时遇到问题,您可以在 config/middlewares.js 中更新 middlewares.js:

将module.exports 中的'strapi::security' 粘贴为:

// ...
  {
    name: 'strapi::security',
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          'connect-src': ["'self'", 'https:'],
          'img-src': ["'self'", 'data:', 'blob:', 'res.cloudinary.com'],
          'media-src': ["'self'", 'data:', 'blob:', 'res.cloudinary.com'],
          upgradeInsecureRequests: null,
        },
      },
    },
  },
// ...

【讨论】:

  • 我有同样的问题...但是我的配置是最新的最新软件包...仍然无法正常工作...它与本地工作或生产有关吗?
  • 没关系,我有“plugin.js”而不是“plugins.js”作为文件夹名!它现在可以工作了..愚蠢的错误...?‍♂️
猜你喜欢
  • 1970-01-01
  • 2019-05-07
  • 2022-11-01
  • 2021-04-22
  • 2016-09-20
  • 1970-01-01
  • 2022-01-11
  • 2015-12-19
  • 2017-02-23
相关资源
最近更新 更多