LaravelでS3のファイル操作をする方法まとめ


ご縁がありまして、LaravelからS3を使う機会が多くなってきたので、今のうちにまとめておきます。

AWS側の設定(IAMやバケット作成)、Laravelと接続するまでは、以下の記事などを参考にします。

超簡単!LaravelでS3を利用する手順

 

S3バケットへのアクセス

Storageファサードを使って、設定済みのディスクへの操作ができます。

 

ファイルのアップロード

①アップロード先のパスを指定:バケットのrootディレクトリからの相対パス

②アップロード対象のファイルデータ

③ファイルパーミッション:第三引数で、ファイル視認性をpublicかprivateのどちらかで宣言できます。

 

ファイルのURL(フルパス)を取得

https://xxxx.s3.ap-northeast-1.amazonaws.com/upload_file/500.jpg

のような、URLが取得できます。
 

ファイルのURL(フルパス)を取得

https://xxxx.s3.ap-northeast-1.amazonaws.com/upload_file/500.jpg

のような、URLが生成されます。

フロント側へ渡し、画像などを表示する際などに使用します。
 

ディレクトリ内のすべてのファイルを一覧で取得する

 

のような、rootからのパスで取得されるので注意です。

全てのディレクトリを一覧で取得する場合は、以下のようにします。

 

その他のファイル操作

 

ファイルのダウンロード

ファイルダウンロードリングを作る際は、aタグにdownload属性をつけると可能ですが、href先がクロスドメインだと、ブラウザによってはdownload属性で指定したファイル名が無視されたり、場合によってはdownload属性が無効化されます。

その場合は、Larave側でダウンロード処理を記載します。

 

 

————————

この記事がお役に立てたら、是非シェアをお願いします^^