gpt4 book ai didi

php - Laravel 媒体转换未在 Amazon S3 上使用 laravel-medialibrary 创建

转载 作者:行者123 更新时间:2023-12-04 16:47:02 26 4
gpt4 key购买 nike

我正在使用 Spatie/Laravel-Medialibrary处理我的产品模型的文件附件。我想将所有产品图片上传到 Amazon S3,然后将每张图片自动转换为不同尺寸(即“拇指”、“小”、“中”、“大”),如 documented here .

在使用本地文件系统时,一切都很好。该包创建了转换,我可以使用我的应用程序访问它们。当我尝试更改程序包的设置以使用 Amazon S3 而不是本地文件存储时,问题就来了。

所以在我的 ImageController.php 中,我有以下行:

$product->addMedia(public_path() . '/temp/products/'.$product->id)->toCollection('images', 's3');

config/filesystems.php 中的 S3 配置

's3' => [
'driver' => 's3',
'key' => env('AMAZON_S3_ID'),
'secret' => env('AMAZON_S3_KEY'),
'region' => env('AMAZON_S3_REGION'),
'bucket' => env('AMAZON_S3_BUCKET'),
'visibility' => 'public'
],

以及位于我的 Product.php 类中的转换设置:

public function registerMediaConversions()
{
$this->addMediaConversion('thumb')
->setManipulations(['w' => 160, 'h' => 120])
->performOnCollections('images');

$this->addMediaConversion('small')
->setManipulations(['w' => 280, 'h' => 210])
->performOnCollections('images');

$this->addMediaConversion('medium')
->setManipulations(['w' => 400, 'h' => 300])
->performOnCollections('images');

$this->addMediaConversion('large')
->setManipulations(['w' => 640, 'h' => 480])
->performOnCollections('images');
}

正如我上面提到的,如果我使用本地文件系统,一切都很好,但是一旦我将其更改为使用 Amazon S3,文件转换就不会创建。原始文件已成功上传到亚马逊,但转换不存在。有什么建议吗?

最佳答案

因为转换作为“队列”工作,您的服务器不设置队列。

阅读更多 Laravel 文档 https://laravel.com/docs/5.7/queues

关于php - Laravel 媒体转换未在 Amazon S3 上使用 laravel-medialibrary 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com