首页 > 解决方案 > Laravel Spatie/Media 使用 PHP 即时生成转换

问题描述

我正在开发一个项目,我从旧版应用程序中导入数十万张照片。我已经编写了所有的种子脚本和一个很好的 CustomPathGenerator 来处理存储和检索那么多图像(一个平面目录对那么多文件不起作用)。为了加快导入并减少磁盘空间使用,我想在导入期间禁用转换,然后在之后重新启用它们。我有两个问题。首先,当您将媒体添加到模型时,是否有禁用自动转换的方法?就像是:

$myModel->addMedia($path)
     ->preservingOriginal()
     //->skipConversion() // don't do the conversion
     ->toMediaCollection('images');

其次,我希望能够即时生成转换,类似于:

$image = $myModel->getFirstMedia('images');
if( !$image->hasGeneratedConversion('thumb') ) {
 // $image->generateConversion('thumb'); // generate conversion on-the-fly
}

这是内置在 Media 类中,还是我必须使用 Spatie/Image 包构建自己的 generateConversion 方法?

使用 Spatie/Laravel-Media v8

标签: laravel

解决方案


推荐阅读