✏️
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