Lespoir
@Lespoir

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【S3アップロード】LaravelからのS3アップロード

LaravelからS3へのアップロード時、publicに設定したいです。
お力添えいただけますと幸いです。よろしくお願いいたします。

解決したいこと

期待値:公開権限を与えてS3にアップロードする

  • ファイルアップロードはできる中、公開権限を与えるように修正していたがアップロードすらできなくなってしまった
    • 考えられること:filesystems.phpに'visibility' => 'public',を加えたこと

開発環境

バックエンド
  • PHP:8.1.x
  • Laravel:9.x
フロントエンド
  • React:18.1.x
  • Next:12.2x
  • Tailwind CSS:3.1.x

例)
Ruby on RailsでQiitaのようなWebアプリをつくっています。
記事を投稿する機能の実装中にエラーが発生しました。
解決方法を教えて下さい。

発生している問題・エラー

下記コードにて$pathを出力するとnull

$path = Storage::disk('s3')->put('/products/' . $product_id, $key, 'public');
$count = count($files);
$keys = array_keys($files);
$array = [];
for ($i = 0; $i < $count; $i++) {
   $key = $keys[$i];
   $extension = $files[$key]->getClientOriginalExtension();
   $directory = '/products/' . $product_id;
   $path = Storage::disk('s3')->put($directory, $key, 'public');
}

自分で試したこと

  • storePublicly
  • storePubliclyAs
0

1Answer

Storage::disk('s3')->put の返り値は true/false が返ってきそうなんですが、pathが返ってくるんでしょうか?

パスは s3://バケット名/ファイル名 になりそうですよね

1Like

Your answer might help someone💌