こんにちは、現在エンジニアを目指して勉強中の一般男性です。
ポーフォリオ作品を制作しているなかで
外部のファイルストレージにはAWS S3を選択しました。
その中で、ポートフォリオサイトからのファイルアップロード、表示には成功するものの
S3に直接入れたファイルを表示することができませんでした。
S3まわりは権限設定等が複雑でいろいろな記事もあったのですが、
今回私が解決できた方法は見受けられなかったので
メモとして残しておきます。
環境
・macOS Monterey 12.6
・PHP 8.1.13
・Laravel 9.3.12
・Laravel Sail
・Docker 20.10.2
エラー時の状況
AWSマネジメントコンソールの画面にて、
オレンジ色のアップロードボタンからからファイルを直接アップ。
img
タグで読み込もうとするも表示されない。
そこでS3内のオブジェクトを呼び出すURLをそのまま検索してみると、
アクセスが拒否されている。。
公開設定
いろいろな記事を読んでガチャガチャやったのですが、
結局自分の場合は以下の方法でした。
マネジメントコンソールで対象オブジェクトのアクセス許可を確認
公開できているオブジェクトの設定と比較
比較してみると一目瞭然ですね。
読み込めないオブジェクトは所有者しか読み込みができない設定で、
公開できているものは パブリックアクセスがオブジェクトを「読み込み可」 になっています。
なので、公開したいオブジェクトに戻って 「編集」をクリック!
アクセスコントロールリストを編集
これで無事に公開できました!
参考
公式がYoutubeやっていたのでご参考までに、、