2

我通过在我的Laravel 8项目中运行以下 composer 命令安装了 s3 flysystem 包

composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"

并尝试将请求中的文件存储为

$imageName = $request->file('file')->store('uploads');

我收到以下错误

League\Flysystem\AwsS3v3\AwsS3Adapter::__construct():参数 #1 ($client) 必须是 Aws\S3Client 类型,给定 Aws\S3\S3Client,在 D:\Projects\Rescale\vendor\laravel\framework\ 中调用src\Illuminate\Filesystem\FilesystemManager.php 在第 229 行

4

3 回答 3

4

因此,似乎 ThePHPLeague Flysystem 主要版本已更新(到 v2),因此破坏了很多东西,因为最新的 Laravel 依赖于“^1.1”(参见:https ://github.com/laravel/framework/blob/8.x/composer .json#L27)。

我遇到了这个错误,所以我的解决方法是改用特定版本。


  1. 转到 composer.json 并使用最新的 v1(参见:https ://github.com/thephpleague/flysystem-aws-s3-v3/tags )。
- "league/flysystem-aws-s3-v3": "^1.0",
+ "league/flysystem-aws-s3-v3": "1.0.29",
  1. 运行composer update并让 composer 更新您的依赖项。
于 2021-12-08T19:14:06.390 回答
0

试试这个在 AWS 上上传图片

$path = Storage::disk('s3')->put('uploads', $request->file('file'));
于 2021-12-06T11:39:24.547 回答
0

尝试这个

composer require --with-all-dependencies league/flysystem-aws-s3-v3 "~1.0"

于 2022-02-11T09:41:20.413 回答