Обзор моего представления

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

Однажды мой друг рассказал мне, как он создал канал только для того, чтобы хранить и упорядочивать свои изображения в одном месте.
Все вложения, загруженные в дискорд, имеют автоматически сгенерированную ссылку. Этими ссылками можно поделиться, но они очень длинные.
Discord имеет очень высокоскоростную сеть доставки контента (CDN) на базе Cloudflare.

Все это заставило нас задуматься: «Почему бы не создать хостинг изображений, использующий CDN Discord?»

И это именно то, что мы сделали!
Но это должно было быть НЕВЕРОЯТНО быстро. Мы хотели сделать хороший хостинг изображений, с поддержкой пользовательских вставок, API и т.д.

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


Категория подачи:

Дурацкие подстановочные знаки!


Обзорное видео



Используемый язык

Машинопись


Ссылка на код

Служба хостинга изображений, которая использует CDN Discord для хранения изображений.

Быстрый хостинг изображений стал проще.

ОГИМГ

Главная страница

Конструктор встраивания

Как это работает

Как хранятся данные

Есть две разные схемы, т. User а также Image схема.

Для каждого пользователя хранится следующая информация:

  • идентификатор: строка
  • электронная почта: строка
  • created_at: дата
  • token_number: число
  • embed_title: строка
  • embed_site_name: строка
  • embed_site_url: строка
  • embed_color: строка
  • embed_author_name: строка
  • embed_desc: строка

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

Image схема — это информация, которая хранится для каждого изображения:

  • uploaded_by: строка
  • слаг: строка
  • img_url: строка
  • uploaded_at: дата

Здесь, slug а также uploaded_by индексируются.

Всякий раз, когда кто-то посещает /[slug] маршрут, Image схема запрашивается для изображения с слагом.

Затем с помощью uploaded_byинформация о внедрении запрашивается из User схема.

Как осуществляется доступ к данным

Все данные извлекаются с помощью redis-om упаковка. Фронтенд делает запросы через /api маршруты. Затем серверная часть обращается к функциям из lib/redis.ts


Дополнительные ресурсы/информация

ОГИМГ

Главная страница

Конструктор встраивания


Соавторы

@yxsh