Работа Laravel переписывает другие работы? - PullRequest
0 голосов
/ 13 февраля 2019

Я не совсем уверен, как произнести это слово, но у меня есть работа под названием 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 взят из чужой загрузки.

Кто-нибудь знает, что я могу попробовать?Я даже не уверен, с чего начать отладку.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Эх, ладно, я наконец-то решил это.CloudConvert необходимо было восстановить.Смотрите нить здесь , если кто-нибудь когда-нибудь столкнется с этим снова.

0 голосов
/ 13 февраля 2019

Простой обмен time()

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