【问题标题】:Optimizing image files on Lravel Vapor在 Laravel Vapor 上优化图像文件
【发布时间】:2021-09-25 15:09:00
【问题描述】:

我正在使用 Laravel Vapor 来托管一个网站。到目前为止,我还没有遇到过缺少文件系统的问题,但现在我遇到了难题。

我正在尝试优化 .png 和 .jpeg 文件,而我发现的库需要一个文件系统来编写压缩文件:

  1. 图像优化器 (https://github.com/spatie/image-optimizer)

  2. PHP 图像缓存 (https://nielse63.github.io/php-image-cache/)

我猜我可以设置一个在额外的传统服务器上运行的外部服务......但我更愿意让它与 Vapor 一起工作。

有什么想法吗?

【问题讨论】:

  • 您需要什么样的优化?有 500mb 的本地存储空间,因此您可以使用它,但如果您只是调整大小/创建缩略图,则不需要本地存储空间。您可以直接从/向 S3 读/写。
  • @BobB ,我几乎不需要任何存储空间,仅用于一次优化图像文件。问题是这两个库中的函数都将优化后的输出文件的位置作为参数,而你不能用 S3 做到这一点。

标签: laravel laravel-vapor


【解决方案1】:

您是否尝试过直接使用 GD 库或 Imagick? 将 Imagick 与 s3 上的文件一起使用,您可以执行以下操作:

$s3 = \Storage::disk('s3');
$file = $s3->get('tmp/'.$uuid); // assuming Vapor upload to S3 here
$imagick = new \Imagick(); // extension can be added to Vapor.
$imagick->readImageBlob($file);
$imagick->thumbnailImage(200,200);// whatever size you are looking for.
$s3->put('path/on/s3/for/your/optimized/file',$imagick->getImageBlob(),['CacheControl' => 'max-age=10000000, public', 'ACL' => 'public-read']) // whatever options you need

注意读写都是直接从/到s3。无需写入本地磁盘

【讨论】:

    猜你喜欢
    • 2020-12-05
    • 2021-02-27
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2018-12-30
    • 2017-04-09
    相关资源
    最近更新 更多