1

我试图将干预与 AWS S3 一起使用,但调整大小的方法对我不起作用。

$img = Image::make($file)->rotate($rotate)->crop($width, $width, $x, $y);
$img->backup();

foreach(Config::get('img.image-sizes') as $_k => $_v){
    $img->resize($_v['w'], $_v['h']);
    $s3->queue($img, $name);
    $img->reset();
}

图片上传到 S3,但调整大小失败,我得到的所有图片都是原始图片的大小

如果我在图像上调用 save() ,则调整大小有效,但我不希望在通过 S3 上传时保存图像,将 $img 作为正文:

$this->commands[] = $this->s3->getCommand('PutObject', [
        'Bucket' => env('AWS_BUCKET'),
        'Key' => Config::get('img.image-path').$name,
        'Body' => $img,
        'ContentType' => $img->mime(),
        'ACL' => 'public-read'
    ]);

为了让它工作,我必须先在每个图像上调用 save 吗?如果是这样,有没有办法让它与 S3 配合得很好,理想情况下,我不想在将它们发送到 S3 之前先将它们保存到我的服务器。

4

1 回答 1

0

这是我用来调整上传图像大小并使用 Laravel 5 和 Intervention 保存到 Amazon S3 的代码。

$imageFile = \Image::make($imageUpload)->resize(600, 600)->stream();
$imageFile = $imageFile->__toString();

$filename = 'myFileName.png';

$s3 = \Storage::disk('s3');
$s3_response = $s3->put('/'.$filename, $imageFile, 'public');
于 2016-01-16T21:18:11.830 回答