✏️
Laravel9 S3 Storage::disk() の返却値が変わっていた
先日Laravelのバージョンを8から9にアップグレードする機会がありました。
バージョンアップの差分を見ていたところ、diskにS3を指定している場合のStorage::disk()の返却値が変更されているようでしたのでメモです。
Storageファサード
LaravelのStorageファサードの実態はFilesystemManager
クラスです。
FilesystemManager
クラスのdisk
メソッドを見たところ、指定したdisk
のdriver
がs3
の場合はFilesystemManager
クラスのcreateS3Driver
メソッドが実行されるようです。
createS3Driver
バージョン9以前はこのメソッド内でFilesystemAdapter
クラスが返却されていました。
バージョン9では、FilesystemManager
を継承したAwsS3V3Adapter
クラスが新しく作成され、このクラスを返却するように変更されたみたいです。
FilesystemManager
クラスはメンバ変数に\Aws\S3\S3Client
のインスタンスを持っており、
getClient
メソッドでこのインスタンスを取得できます。
周辺のコードを読む機会があり、調べたことを残したメモでした。
Discussion