我正在尝试将 S3 Multipart Uploader 从 Laravel 8 升级到 Laravel 9,并已按照文档中的概述升级到 Flysystem 3,并且没有依赖项错误https://laravel.com/docs/9.x/upgrade#flysystem-3。
我无法访问底层 S3Client 以创建分段上传。
// Working in Laravel 8
// Laravel 9 throws exception on getAdapter()
$client = Storage::disk('s3')->getDriver()->getAdapter()->getClient();
// Underlying S3Client is used to create Multipart uploader as below
$bucket = config('filesystems.disks.s3.bucket');
$result = $client->createMultipartUpload([
'Bucket' => $bucket,
'Key' => $key,
'ContentType' => 'image/jpeg',
'ContentDisposition' => 'inline',
]);
return response()
->json([
'uploadId' => $result['UploadId'],
'key' => $result['Key'],
]);
Run Code Online (Sandbox Code Playgroud)
然而,Laravel 9 抛出异常Call to undefined method League\Flysystem\Filesystem::getAdapter() …