У меня возникла проблема с файловой системой Laravel 5 при загрузке файлов в ведро S3. Линия, которая работает с файловой системой является:Неправильный путь к адаптеру flysystem S3 в Laravel 5
Storage::disk('s3')->put($slug, $img);
Он работает, как это должно быть для:
Storage::disk('local')->put($slug, $img);
Но когда я изменяю диск в S3 он выдает следующее сообщение об ошибке:
Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found
В соответствии с документами L5 у меня есть следующее требование в моем composer.json
"league/flysystem-aws-s3-v2": "~1.0"
который установлен AWS лиги flysystem адаптера под:
League\flysystem-aws-s3-v2\
Я попытался обновить путь в fileSystemManager.php в папке файловой системы поставщика к AWS flysystem пути установки, но он по-прежнему не работает. Кажется, я не могу найти кого-либо еще, кто испытал это поведение.
Свежая пара глаз или знающая голова, которая могла бы узнать больше о Ларавеле, чем мне было бы здорово. Я действительно не могу показаться проблемой.
UPDATE
Я свежей установки АМС flysystem и не я получаю следующее:
ErrorException in Util.php line 250:
fstat() expects parameter 1 to be resource, object given
Спасибо за подсказку! Любая идея, почему нам нужно подстроить объект? Это немного странно. Благодаря! – commandantp
Да, метод 'PUT' принимает только строки (и некоторые ресурсы php). Я не знал об этом в Ларавеле, пока не столкнулся с проблемой. В более старых версиях Laravel переданное изображение было типом для вас в фоновом режиме с чем-то вроде '(string) $ img'. Это не так, поэтому вы должны отбросить объект как строку, чтобы метод 'PUT' принял его как действительный. –