Skip to main content

为 Strapi Cloud 上传提供商配置

🌐 Upload Provider Configuration for Strapi Cloud

Page summary:

像 S3 或 Cloudinary 这样的外部存储需要插件设置、安全中间件和云变量。

Strapi Cloud 开箱即用带有本地上传提供者。不过,如果需要,它也可以配置为使用第三方上传提供者。

🌐 Strapi Cloud comes with a local upload provider out of the box. However, it can also be configured to utilize a third-party upload provider, if needed.

Caution

请注意,Strapi 无法为第三方上传提供商提供支持。

🌐 Please be advised that Strapi is unable to provide support for third-party upload providers.

Prerequisites
  • 一个在 v4.8.2+ 上运行的本地 Strapi 项目。
  • 第三方上传提供者的凭证(参见 Strapi Market)。

配置

🌐 Configuration

为 Strapi Cloud 配置第三方上传提供商需要四个步骤:

🌐 Configuring a third-party upload provider for use with Strapi Cloud requires 4 steps:

  1. 在本地 Strapi 项目中安装提供程序插件。
  2. 在本地 Strapi 项目中配置提供者。
  3. 在本地 Strapi 项目中配置安全中间件。
  4. 将环境变量添加到 Strapi Cloud 项目中。

安装提供程序插件

🌐 Install the Provider Plugin

使用 npmyarn,按照对应供应商在 Marketplace 中的条目说明,将提供程序插件作为包依赖安装到本地 Strapi 项目中。

配置提供者

🌐 Configure the Provider

要在你的 Strapi 项目中配置第三方上传提供者,请通过添加如下上传配置选项来创建或编辑你的生产环境 ./config/env/production/plugins.js|ts 的插件配置文件:

🌐 To configure a 3rd-party upload provider in your Strapi project, create or edit the plugins configuration file for your production environment ./config/env/production/plugins.js|ts by adding upload configuration options as follows:


module.exports = ({ env }) => ({
// … some unrelated plugins configuration options
upload: {
config: {
// … provider-specific upload configuration options go here
}
// … some other unrelated plugins configuration options
}
});
Caution

文件结构必须与上述路径完全匹配,否则配置将不会应用到 Strapi 云。

🌐 The file structure must match the above path exactly, or the configuration will not be applied to Strapi Cloud.

每个提供商将有不同的配置设置可用。请查看 Marketplace中该提供商的相应条目。

示例:

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

配置安全中间件

🌐 Configure the Security Middleware

由于 Strapi 安全中间件的默认设置,你需要修改 contentSecurityPolicy 设置才能在媒体库中正确查看缩略图预览。

🌐 Due to the default settings in the Strapi Security Middleware you will need to modify the contentSecurityPolicy settings to properly see thumbnail previews in the Media Library.

在你的 Strapi 项目中执行此操作:

🌐 To do this in your Strapi project:

  1. 在你的 Strapi 项目中,导航到 ./config/middlewares.js./config/middlewares.ts
  2. 用上传提供者提供的对象替换默认的 strapi::security 字符串。

示例:

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

在将上述更改推送到 GitHub 之前,向 Strapi Cloud 项目添加环境变量,以防在更改完成之前触发项目的重建和新部署。

🌐 Before pushing the above changes to GitHub, add environment variables to the Strapi Cloud project to prevent triggering a rebuild and new deployment of the project before the changes are complete.

Strapi 云配置

🌐 Strapi Cloud Configuration

  1. 登录 Strapi Cloud,然后在“项目”页面上点击相应的项目。
  2. 点击 设置 标签,然后在左侧菜单中选择 变量
  3. 添加特定于上传提供者的所需环境变量。
  4. 点击 保存

示例:

| 变量 | 值 ||---------------------|-------------------------|| CLOUDINARY_NAME | your_cloudinary_name || CLOUDINARY_KEY | your_cloudinary_api_key || CLOUDINARY_SECRET | your_cloudinary_secret |

部署

🌐 Deployment

要部署项目并使用第三方上传提供商,请推送之前的更改。这将触发 Strapi Cloud 项目的重新构建和新部署。

🌐 To deploy the project and utilize the third-party upload provider, push the changes from earlier. This will trigger a rebuild and new deployment of the Strapi Cloud project.

一旦应用构建完成,项目将使用新的上传提供者。

🌐 Once the application finishes building, the project will use the new upload provider.

Custom Provider

如果你想创建自定义上传提供程序,请参阅 CMS 文档中的 Providers 文档。

🌐 If you want to create a custom upload provider, please refer to the Providers documentation in the CMS Documentation.