fix(fixminio): stream image from minio #6

Merged
afornerot merged 1 commits from fixminio into master 2022-10-24 13:47:44 +02:00
2 changed files with 26 additions and 2 deletions

View File

@ -73,8 +73,7 @@ class MinioController extends AbstractController
}
// C'est du contenu dynamique on download depuis minio
else {
$filePath = $this->minio->download($file, $file, true);
$content = file_get_contents($filePath);
return new Response($this->minio->image($file, $file));
}
break;
}

View File

@ -30,6 +30,31 @@ class MinioService
$this->initBucket();
}
public function image(string $file, string $filename)
{
try {
$result = $this->client->getObject([
'Bucket' => $this->minioBucket,
'Key' => $this->minioRoot.$file,
]);
} catch (S3Exception $e) {
switch ($e->getResponse()->getStatusCode()) {
case 404:
throw new NotFoundHttpException(self::ERR_FILE_NOT_FOUND);
break;
default:
\Sentry\captureException($e);
throw new Exception(self::ERR_UNAVAILABLE);
break;
}
} catch (Exception $e) {
\Sentry\captureException($e);
throw new Exception(self::ERR_UNAVAILABLE);
}
return $result->get('Body');
}
public function download(string $file, string $filename, bool $usecache = true)
{
// On s'assure que le repertoire temporaire de destination existe bien