Каков наилучший способ хранения изображений высокого качества? - PullRequest
0 голосов
/ 03 мая 2020

В настоящее время я использую базу данных mon go, где храню довольно большие изображения в формате base 64 ie: data: image / jpeg; base64, / 9j / 4AAQSkZJRgABAQAAAQA ... среди некоторых других данных. Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку эти изображения достаточно велики, некоторые запросы, например, все, требуют около 11 секунд, чтобы вернуть только ~ 30 документов в коллекции. Я полагаю, что это потому, что строка образа base 64 очень велика.

Я пытался сжать изображения, но они теряют качество, если я это делаю. Я попытался изменить размеры, что также приводит к некоторой потере качества, когда изображение немного увеличивается на экране. Я также попытался обрезать изображения, но это не сильно уменьшает размер, поскольку я не хочу много обрезать.

В моей базе данных mon go у меня также есть несколько индексов, настроенных на идентификатор документа, а также в одном поле.

Можно ли каким-либо образом сохранять изображения высокого качества и поддерживать их качество, одновременно сократив время запроса?

1 Ответ

0 голосов
/ 03 мая 2020

Мой лучший совет - хранить файлы локально на хост-сервере, а в БД хранить имя файла и идентификатор пользователя / путь к его файлам.

Если вы действительно хотите чтобы сохранить больше, я бы сделал следующее: если это изображения, пользователь может загрузить изображение в размере (например): 4000X1500. Вы можете использовать PHP (или любой другой язык на стороне сервера), чтобы создать копию файла с меньшим количеством пикселей, таким образом уменьшая его размер. Это сэкономит трафик и пространство / время загрузки (хорошо для SEO). Так что просто сделайте копию оригинальной версии с меньшим размером. На этой ноте PHP позволяет вам, при копировании изображения в меньшие размеры, также изменять качество (от 1 до 100%).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...