Куда сохранить загруженный аватар

Не могу найти ответ на свой вопрос.

Я создаю приложение React, используя NodeJS и CRA, и мне нужно реализовать систему загрузки аватаров. Но я не уверен, где сохранить загруженное изображение. Мой сервер Node обслуживает статическую папку «public», так что мне нужно сохранять изображения в /public/avatar? Но каждый раз, когда я буду обновлять приложение и заново создавать папку на стороне клиента, это перезапишет общую папку и удалит все ранее загруженные аватары? Я прав ? Так что ты мне предлагаешь?

Спасибо,


person LaSmala    schedule 03.12.2018    source источник


Ответы (2)


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

В случае, когда вы использовали базу данных, такую ​​как MongoDB, вы могли бы сохранить изображение внутри Mongo, используя gridfs и предоставлять данные, используя маршрут при получении информации о пользователе. Точно так же вы также можете сохранить в базе данных путь к файлу и вернуть путь или данные файла из маршрута.

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

person CoolestNerdIII    schedule 03.12.2018
comment
Спасибо за ответ CoolestNerdllll. Да, я использую MongoDB для сохранения некоторых данных, но в случае, если я реализую чат, в котором отображается аватар, я не могу делать запрос на получение всех аватаров каждый раз, когда говорит новый пользователь, я думаю, что это не очень хорошо и эффективный способ? - person LaSmala; 03.12.2018
comment
Если вы собираетесь показать имя пользователя, сведения или что-либо о пользователе, запрос/ответ, который возвращает эту информацию, может очень легко также включать данные изображения или путь к изображению. - person CoolestNerdIII; 03.12.2018
comment
Хм, хорошо, теперь я вижу, как это реализовать. Большое спасибо. Хорошего дня - person LaSmala; 03.12.2018
comment
Надеюсь, это хотя бы укажет вам правильное направление. Вы также можете посмотреть на кеширование изображения/данных, чтобы ограничить запросы. - person CoolestNerdIII; 03.12.2018
comment
Да, я постараюсь получить больше информации об этом. Я думаю, что есть какой-то пакет, который предлагает эту функцию. Может быть, мне нужно проверить загруженное изображение, если за ним нет вредоносного ПО? - person LaSmala; 03.12.2018

Вы также можете использовать Gravatar (https://gravatar.com/). Пользователь может выбрать аватар, назначенный хэшу его почтового адреса, или использовать автоматически сгенерированный по умолчанию.

Хотя с этим решением вы не можете позволить пользователям менять свой аватар прямо на вашем сайте.

Он широко используется на известных веб-сайтах, таких как StackOverflow.

person Alexandre Lagane    schedule 03.12.2018
comment
Да, я читал об их услугах, но я не очень хороший фанат. по-моему, это слишком ненавязчиво - person LaSmala; 03.12.2018