Попробуйте передать объект как второй параметр для вашего сопоставления.
entity = Mapper.Map<EntityDto, Entity>(model, entity);
В противном случае экземпляр вашего объекта перезаписывается новым экземпляром, и вы теряете объект, созданный в первой строке.
Два подхода:
readfile()
, см. Это: https: // stackoverflow.com/a/1353867/1364793)Вы пишете, что служите изображениям в виде блобов с кодировкой base64 из-за проблем с безопасностью, включая очистку.
Чтобы выполнить это требование безопасности, вы подвергаетесь значительному снижению производительности, энергии кодирования на стороне сервера, времени передачи файлов и рендеринга на клиенте.
Чтобы улучшить производительность на стороне сервера, вы можете кэшировать закодированную версию; Вы можете записать $ b64largeImage на диск в том же каталоге, проверить, существует ли он, и отправить его клиенту.
Чтобы сократить время передачи, убедитесь, что на сервере включен GZIP; это должно сжать ваши данные.
Тем не менее, производительность на стороне клиента останется проблемой - ваши изображения, скорее всего, не будут кэшироваться на клиенте, а декодирование изображений (особенно если их 40 на каждой странице) может потреблять приличное количество ресурсов ЦП (особенно на мобильных устройствах). устройства).
Затем возникает проблема, заключающаяся в том, что если браузер может декодировать изображение, а аттаксер / скребок - тоже, и они могут сохранить копию этого изображения. Таким образом, все эти усилия не на самом деле приносят вам большую секретность.
Конечно, вы можете не захотеть, чтобы третьи лица встраивали ваши изображения в их страницы, или вы можете не допустить, чтобы они легко царапали ваши изображения.
В этом случае вы можете сосредоточиться на том, чтобы URL-адреса трудно / невозможно угадать или срок их действия истек. Это повредит вашему SEO, так что это компромисс. S3 имеет URL-адреса с истекшим сроком действия, или вы можете создать службу, которая проверяет реферер для каждого запроса и обрабатывает только запросы изображений из доменов, занесенных в белый список, или создать собственную службу URL-адресов с истекающим сроком действия - но в каждом случае вы будете использовать JPEG / GIF / PNG изображения, так что вы получите небольшой размер файла и ограниченное время декодирования.