Amazon S3 提供方凭据必须设置在 s3Options 下
页面摘要: 在 Strapi 5 中,Amazon S3 上传提供方选项必须嵌套在
s3Options对象中,且凭据应传入credentials对象内。
在 Strapi 5 中,Amazon S3 提供方(@strapi/provider-upload-aws-s3)使用 AWS SDK v3,这改变了凭据及其他客户端选项的配置位置。
本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。
破坏性变更说明
在 Strapi v4 中
accessKeyId、secretAccessKey、region 和 params 等选项可以直接在 providerOptions 下传递,不存在 s3Options 键。
providerOptions: {
accessKeyId: env('AWS_ACCESS_KEY_ID'),
secretAccessKey: env('AWS_ACCESS_SECRET'),
region: env('AWS_REGION'),
params: {
Bucket: env('AWS_BUCKET'),
},
},
在 Strapi 5 中
这些选项必须嵌套在 s3Options 对象内,且凭据应包裹在 credentials 对象中。将 accessKeyId/secretAccessKey 放在 s3Options 的根层级仍然有效,但会触发弃用警告。
providerOptions: {
s3Options: {
credentials: {
accessKeyId: env('AWS_ACCESS_KEY_ID'),
secretAccessKey: env('AWS_ACCESS_SECRET'),
},
region: env('AWS_REGION'),
params: {
Bucket: env('AWS_BUCKET'),
},
},
},
迁移
本节汇总了关于该破坏性变更的有用说明和操作步骤。
说明
- 有关完整示例,请参阅 Amazon S3 提供方 配置文档。
手动操作步骤
如果你正在将 Amazon S3 配置从 Strapi v4 升级:
- 将
accessKeyId、secretAccessKey、region、params(以及任何其他 S3 客户端选项)嵌套到providerOptions下的s3Options对象内。 - 将
accessKeyId和secretAccessKey移入s3Options内的credentials对象中。将它们留在s3Options的根层级仍然有效,但已被弃用并会触发警告。