Php Laravel S3集成

Php Laravel S3集成,php,laravel,amazon-s3,filesystems,amazon,Php,Laravel,Amazon S3,Filesystems,Amazon,我正在阅读laravel的文件系统文档,这对于初学者来说是不够的 我通过composer安装了s3软件包: league/flysystem-aws-s3-v2~1.0 现在我有了下面的代码,我正在本地上传文件 如何使用下面的代码将文件上载到S3 public function setPhoto($file, $saveDB = true) { $stream = Image::make($file->getRealPath())

我正在阅读laravel的文件系统文档,这对于初学者来说是不够的

我通过composer安装了s3软件包:

league/flysystem-aws-s3-v2~1.0

现在我有了下面的代码,我正在本地上传文件

如何使用下面的代码将文件上载到S3

public function setPhoto($file, $saveDB = true)
    {
        $stream = Image::make($file->getRealPath())
                  ->stream('jpg', 80);
        $stream = $stream->detach();
        $photoID =  $this->id . '-medium-' . time() . '.jpg';
        $photoPath = 'photos/packages/' . $photoID;
        DataIO::deleteFile($photoPath);
        $this->photo_url = DataIO::updateStream($photoPath, $stream);
        $this->photo_path = $photoID;
        if($saveDB) {
            $this->save();
        }
    }
我已经为s3、秘密密钥等设置了凭据。
谢谢

文档中有这样做的说明

你在用图书馆吗?您可以这样尝试:

public function setPhoto($file, $saveDB = true)
{
    $stream = Image::make($file->getRealPath())->stream('jpg', 80);
    $stream = $stream->detach();
    $photoID =  $this->id . '-medium-' . time() . '.jpg';
    $photoPath = 'photos/packages/' . $photoID;
    Storage::disk('s3')->put("$photoPath", $stream->__toString(), 'public');

    DataIO::deleteFile($photoPath);
    $this->photo_url = DataIO::updateStream($photoPath, $stream);
    $this->photo_path = $photoID;

    if($saveDB) {
       $this->save();
    }
}

但请确保您在config/filesystem.php中正确设置了s3配置,因为您使用的似乎是rackspace适配器,而不是s3?@cmorrissey很抱歉,这是一个错误,我已经更新了问题,最初我安装了s3,我从laravel文档中复制了这个问题。请回答这个问题。谢谢