我正在尝试新的 Strapi v4。我安装了provider-upload-aws-s3来将我的图像上传到S3并对其进行配置。我确实在 S3 存储桶中看到了我的图像,但在媒体库中没有看到它们。我检查了请求,发现收到此错误:
\n\n\n内容安全策略:page\xe2\x80\x99s 设置阻止加载 {my img URL} 处的资源。
\n
当尝试使用相同的 URL 直接在浏览器中获取图像并且正在加载图像时。
\n我相信这与此警告有关(引用自 Strapi 文档):
\n\n\nStrapi 有一个默认的安全中间件,它有一个非常严格的 contentSecurityPolicy,限制加载图像和媒体只能“自己”,请参阅提供程序页面上的示例配置或查看我们的中间件文档以获取更多信息。
\n
但我不确定如何处理它以及如何覆盖它。那么如何让上传到S3的图片出现在媒体库中呢?
\nIga*_*gal 11
好吧,此时我确实确定这是一个错误,并在 Strapi Github issues 上报告了它。但根据这个答案,我收到了一些必须在文件中完成的配置middlewares.js:
module.exports = [
"strapi::errors",
{
name: "strapi::security",
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
"connect-src": ["'self'", "https:"],
"img-src": [
"'self'",
"data:",
"blob:",
"your-s3-url",
],
"media-src": ["'self'", "data:", "blob:"],
upgradeInsecureRequests: null,
},
},
},
},
"strapi::cors",
"strapi::poweredBy",
"strapi::logger",
"strapi::query",
"strapi::body",
"strapi::favicon",
"strapi::public",
];
Run Code Online (Sandbox Code Playgroud)
我更改your-s3-url为*.amazonaws.com然后一切终于正常了。