/**
* {@inheritdoc}
*/
public function renderFile(Entity $entity, $entityName, $field)
{
$fileName = $entity->get($field);
$mimeTypes = new MimeTypes();
$mimeType = $mimeTypes->getMimeTypeByExtension($fileName);
$key = $this->getKey($entity, $entityName, $field) . '/' . $fileName;
$result = $this->client->getObject(['Bucket' => $this->bucket, 'Key' => $key]);
$result['Body']->rewind();
$response = new StreamedResponse(function () use($result) {
while ($data = $result['Body']->read(1024)) {
echo $data;
flush();
}
}, 200, ['Cache-Control' => 'public, max-age=86400', 'Content-length' => $result['ContentLength'], 'Content-Type' => $mimeType, 'Content-Disposition' => 'attachment; filename="' . $fileName . '"']);
$response->send();
return $response;
}