Bil*_*low 5 php amazon-s3 laravel-5
将文件上传到S3存储桶时,我遇到了Laravel 5文件系统的问题.运行到文件系统的行是:
Storage::disk('s3')->put($slug, $img);
Run Code Online (Sandbox Code Playgroud)
它的工作原理应该是:
Storage::disk('local')->put($slug, $img);
Run Code Online (Sandbox Code Playgroud)
但是当我将磁盘更改为S3时,它会抛出以下错误:
Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found
Run Code Online (Sandbox Code Playgroud)
根据L5文档,我在composer.json中有以下要求
"league/flysystem-aws-s3-v2": "~1.0"
Run Code Online (Sandbox Code Playgroud)
其中安装了联盟的aws flysystem适配器:
League\flysystem-aws-s3-v2\
Run Code Online (Sandbox Code Playgroud)
我已经尝试将filess vendor文件夹中的fileSystemManager.php中的路径更新为aws flysystem安装路径,但它仍然无效.我似乎无法找到任何经历过这种行为的人.
一双新鲜的眼睛或知识渊博的头脑,他们可能比我更了解Laravel.我真的无法解决这个问题.
UPDATE
我做了一个全新安装的aws flysystem而不是我得到以下内容:
ErrorException in Util.php line 250:
fstat() expects parameter 1 to be resource, object given
Run Code Online (Sandbox Code Playgroud)
Bil*_*low 12
好的,所以我修复了最初的问题,删除aws/aws-sdk-php : "^2.8.*了我的,composer.json并运行了一个新的'composer require league/flysystem-aws-s3-v3~1.0'.这修复了找到S3飞系统的初始错误.
第二个错误fstat() expects parameter 1 to be resource, object given与我尝试将图像对象传递给put方法有关:
Storage::disk('s3')->put($slug, $img);
Run Code Online (Sandbox Code Playgroud)
当它需要一个字符串.这是通过字符串化$ img对象来修复的
Storage::disk('s3')->put($slug, $img->__toString());
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他可能遇到此问题的人.
| 归档时间: |
|
| 查看次数: |
3461 次 |
| 最近记录: |