概要

Strapiと以下のプラグインを使って、メディアをS3に格納する構成としました。

https://www.npmjs.com/package/@liashchynskyi/strapi-provider-upload-s3-cloudfront

その際、以下のエラーが発生し、画像が表示されませんでした。

Refusedtoloadtheimage'https://xxx/uploads/yyy.jpg'becauseitviolatesthefollowingContentSecurityPolicydirective:"img-src'self'data:blob:dl.airtable.com".

この課題に対して、以下の記事で述べられている通り、./config/middleware.jsを修正することで、この問題を解決することができました。

https://zenn.dev/studiobros/articles/04400f413eb2aa

ACLについても

同様に、S3にメディアをアップロードできない状態にも遭遇しましたが、上記の記事にある通り、S3のACLを有効にし、さらに適切なブロックパブリックアクセス (バケット設定)を設定することで、無事にアップロードできるようになりました。

まとめ

StrapiとS3を組み合わせたヘッドレスCMSの構築にあたり、参考になりましたら幸いです。