“云”文件系统存储无法正常工作 - Laravel 5.1

7
我正在尝试将一些文件保存到“云”中。 使用:Storage::disk('local')->put('filename', $file)可行。 使用's3'磁盘也有效:Storage::disk('s3')->put('filename', $file)。 但是,当尝试使用“cloud”时:Storage::disk('cloud')->put('filename', $file)会返回以下错误:
BadMethodCallException in PluggableTrait.php line 85: Call to undefined method League\Flysystem\Filesystem::createDriver

有任何想法为什么会出现这种情况以及如何解决它吗?
谢谢!

2
云存储是否是一个可能的选项?我认为你之所以出现错误是因为没有cloud驱动程序。 - cre8
谢谢。如果不能使用“文件系统”配置文件中的“云” => “s3”,那么它有什么用处?即使在L5.1文档中也在使用它...或者我错了吗? - commandantp
这是默认的云驱动程序。您也可以使用 rackspace - cre8
是的,但是你如何告诉存储在云上存储? - commandantp
5
大家好,我知道什么是云服务哈哈,但看看这些码头信息。他们写道: Storage::disk('cloud'),意思是它应该获取您设置的默认云服务,例如在我的情况下=>s3。但问题是它就是不起作用。请帮忙解决一下。 - commandantp
显示剩余2条评论
2个回答

9

虽然比别人晚了两年,但我想为那些像我一样找到这篇文章的人提供帮助。我相信你想要的是...

只有当你有一个名为“cloud”的disk时才正确。

$url = Storage::disk('cloud')->put('filename', $file);

否则,它将使用与config('filesystem.cloud')中输入的名称匹配的磁盘。
$url = Storage::cloud()->put('filename', $file);

有没有想法如何将 $request->file('avatar')->store('avatars'); 使用云磁盘? - Iván Sánchez
尝试在上面的代码$file = $request->file('avatar');之前添加以下内容@IvánSánchez - Simon Hughes

1
如果您将此用于控制器中,您应该这样做:
use Illuminate\Contracts\Filesystem\Cloud;

......

public function test(Cloud $cloud) {
    $cloud->...
}

希望这些能够帮助到您。


有没有办法像这样使用 Storage::cloud()……? - Smith
@Herrero,我认为在filesystems.php文件中可以这样写:'cloud' => env('FILESYSTEM_CLOUD', 's3'),其中s3是一个已配置的disks - César Rodríguez Reyes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接