ВНИМАНИЕ: я не знаю, был ли этот способ уже одобрен другими людьми или нет, и я не знаю, хорош ли этот способ и оптимизируется он или нет.

Но я делюсь своими идеями

Лучший способ реализовать ProfilePicture для онлайн-приложений

Добро пожаловать

Сначала давайте поговорим о ProfilePicture, ProfilePicture — это символ пользователя, это может быть реальная фотография, аниме или три фотографии,

ProfilePicture — это настоящая игла для онлайн-приложений, но это опасно, когда у вашего приложения много пользователей.

Режим разработчика:

Все разработчики знают, что опция ProfilePicture требует больших ресурсов программного обеспечения, потому что вскоре многие люди увидят другое изображение профиля, и сервер умрет.

Теперь проверим пути

Режим по умолчанию:

Пользователь_1 загрузил изображение своего профиля с идентификатором: 1.png

Теперь, когда User_2 отправляет http-запрос для получения информации о пользователе, ответ по умолчанию выглядит примерно так:

{
   "Username": "Amir1387aht",
   "State": "online",
   "ProfilePicture": "1.png"
}

Хорошо, вы можете увидеть данные json, содержащиеся с именем пользователя, состоянием и ProfilePicture, затем clinet загружает ProfilePicture по умолчанию,

Теперь, когда 1 миллион пользователей загрузит это изображение профиля, что произойдет?

Это избыточная работа, которая создает большую нагрузку на сервер.

Моя идея:

  • Пользователь_1:

ОК, когда Пользователь_1 хочет загрузить изображение профиля,

Мы делаем уникальный и случайный идентификатор для загруженного изображения

Как? Видеть это

92jrSudh8382y.png

Это просто случайный идентификатор изображения, и мы загружаем его на сервер.

  • Пользователь_2:

Теперь, когда User_2 хочет получить информацию, отправьте запрос и ответ:

{
   "Username": "Amir1387aht",
   "State": "online",
   "ProfilePicture": "92jrSudh8382y.png"
}

Теперь, когда User_2 получает этот ответ,

ПРИЛОЖЕНИЕ проверяет, существует ли изображение с этим идентификатором на устройстве или нет?

  • Если да, использует сохраненное изображение
  • Если нет, сохраняет изображение на устройстве и использует его

Результаты и объяснение:

Каждый раз, когда Пользователь_2 загружает изображение, приложение сохраняет его и использует, теперь, когда

User_1 устанавливает новый ProfilePicture, приложение создает новый идентификатор и загружает его на сервер, теперь снова, когда User_2 хочет видеть User_1 ProfilePicture,

Приложение получает идентификатор, если оно загружено заранее, использует его, а если нет, загружает новый ProfilePicture.

С помощью этой системы вы избавитесь от лишней работы и уменьшите количество запросов.