Cloudinary 提供方

页面摘要: @strapi/provider-upload-cloudinary 包允许你将媒体库资源存储在 Cloudinary 上。本页介绍使用你的 Cloudinary 云名称、API 密钥和 API 密钥(secret)进行安装和配置。

媒体库功能由一个名为 Upload 的后端服务器包提供支持,该包利用提供方机制。

Strapi 为媒体库维护 3 个提供方。本页介绍 Cloudinary 提供方的安装与配置。对于其他提供方,请参阅媒体库页面中的列表。

安装

要安装官方 Strapi 维护的 Cloudinary 提供方,请在终端中运行以下命令:

Yarn

yarn add @strapi/provider-upload-cloudinary

NPM

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

配置

提供方配置定义在/config/plugins 文件中。如果该文件不存在,请先创建它。提供方配置接受以下条目:

  • provider 用于定义提供方名称(即 cloudinary)
  • providerOptions 用于定义在构建提供方时传递下去的选项(有关选项的完整列表,请参阅 Cloudinary 文档)
  • actionOptions 用于定义分别直接传递给每个方法参数的选项。官方 Cloudinary 文档列出了 upload/uploadStream 和 delete 的可用选项。

JavaScript

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

TypeScript

export default ({ env }) => ({
  // ...
  upload: {
    config: {
      provider: 'cloudinary',
      providerOptions: {
        cloud_name: env('CLOUDINARY_NAME'),
        api_key: env('CLOUDINARY_KEY'),
        api_secret: env('CLOUDINARY_SECRET'),
      },
      actionOptions: {
        upload: {},
        uploadStream: {},
        delete: {},
      },
    },
  },
  // ...
});
说明
  • Strapi 有一个默认的 security 中间件,其 contentSecurityPolicy 非常严格,只允许将图片和媒体加载限制为 "'self'"。更多信息请参阅提供方页面上的示例配置或中间件文档。
  • 当每个环境使用不同提供方时,请在 /config/env/${yourEnvironment}/plugins.js|ts 中指定正确配置(参见环境)。