【问题标题】:Laravel job overwriting other jobs?Laravel 的工作会覆盖其他工作吗?
【发布时间】:2019-02-13 05:40:18
【问题描述】:

我不太清楚如何措辞,但我有一份名为uploadFile 的工作,它使用 CloudConvert 将上传的文件(例如 PDF)转换为 JPG。

单独使用,效果很好。我可以上传一个文件,它将被保存到 S3,然后 CloudConvert 获取 S3 文件,将其转换并上传。完美的。

当一次多人使用它时,文件会混淆。文件名是正确的(因此变量本身必须是正确的),但实际处理的图像是别人的。

$originalFileName = str_replace('.'.$this->extension, '', $this->actualFileName);
$tempName = $originalFileName.'_'.time().'.jpg';
$fileName = $originalFileName.'_'.time();

Storage::disk('s3')->put($folder.$fileName, $file, 'public');

$fileUrl = Storage::disk('s3')->url($fileName);

CloudConvert::file($fileUrl)
    ->withOptions([
        'quality' => 80,
        'resize' => '400x400',
    ])->to(CloudConvert::S3($tempName));

在上面,Storage->put() 中的文件是正确的,$tempName$fileName 也是正确的。不知何故,它正在转换的文件是错误的,所以输出的Jpeg是别人上传的。

有人知道我可以尝试什么吗?我什至不确定从哪里开始调试。

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.2 cloudconvert


    【解决方案1】:

    简单交流time()

    $mark = microtime().rand(10,100);
    $tempName = $originalFileName.'_'.$mark.'.jpg';
    $fileName = $originalFileName.'_'.$mark;
    

    【讨论】:

    • 我不确定这是否会有所帮助,恐怕。文件名本身是完全不同的,所以这不是文件名冲突的问题。
    【解决方案2】:

    呃,好吧,我终于解决了。 CloudConvert 需要重新实例化。如果有人再次遇到此问题,请参阅线程 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-28
      • 2013-03-30
      • 1970-01-01
      • 2021-07-14
      • 2013-01-18
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多