Я не совсем уверен, как это сказать, но у меня есть работа под названием 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 происходит из чужой загрузки.
Кто-нибудь имеет представление о том, что я могу попробовать? Я даже не уверен, с чего начать отладку этого.
Простой обмен time()
$mark = microtime().rand(10,100);
$tempName = $originalFileName.'_'.$mark.'.jpg';
$fileName = $originalFileName.'_'.$mark;
Эх, ладно, я наконец-то решил это. CloudConvert необходимо было восстановить. Смотрите тему Вот, если кто-нибудь когда-нибудь столкнется с этим снова.