gpt4 book ai didi

php - Laravel 5 中 S3 flysystem 适配器的路径不正确

转载 作者:可可西里 更新时间:2023-11-01 13:41:13 25 4
gpt4 key购买 nike

在将文件上传到 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"

在以下位置安装了 league 的 aws flysystem 适配器:

League\flysystem-aws-s3-v2\

我已尝试将文件系统供应商文件夹中的 fileSystemManager.php 中的路径更新为 aws flysystem 安装路径,但它仍然不起作用。我似乎找不到任何其他经历过这种行为的人。

一双新鲜的眼睛或一个知识渊博的头脑可能比我更了解 Laravel 会很棒。我真的无法解决这个问题。

更新

我重新安装了 aws flysystem,但没有得到以下信息:

ErrorException in Util.php line 250:
fstat() expects parameter 1 to be resource, object given

最佳答案

好的,所以我通过删除 aws/aws-sdk-php : "^2.8.* 我的 composer.json 并运行了一个fresh 'composer require league/flysystem-aws-s3-v3 ~1.0'。这修复了查找 S3 flysystem 时的初始错误。

第二个错误 fstat() expects parameter 1 to be resource, object given 与我试图将图像对象传递给 put 方法有关:

Storage::disk('s3')->put($slug, $img);

当它需要一个字符串时。这是通过字符串化 $img 对象修复的

Storage::disk('s3')->put($slug, $img->__toString());

希望这对可能遇到此问题的其他人有所帮助。

关于php - Laravel 5 中 S3 flysystem 适配器的路径不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com