Загрузка...

What is the best way to store images?

Thread in Backend created by C_Sharp Aug 16, 2022. 237 views

  1. C_Sharp
    C_Sharp Topic starter Aug 16, 2022 802 Mar 29, 2019
    Создавать отдельную папку под категорию например Nature в неё скидывать изображения и в MySQL хранить ссылку на изображения из этой папки? Например добавляется фото с названием Forest и в MySQL добавляется ссылка на это по типу C:\Nature\Forest.png.
     
  2. Обменник
    C_Sharp, лучше переименовать файлы и хранить, например, в базе данных
     
    1. C_Sharp Topic starter
      Обменник, Так вроде нагрузка на БД Приличная?
    2. Обменник
      C_Sharp, ну можешь не хранить названия в бд, если тебе чисто надо файлы в папке и что бы не повторялось названия ибо перезарисать может, переименовать нужно
    3. C_Sharp Topic starter
      Обменник, Изображения будут с уникальными названиями и выгружаться они будут все. Т.е по запросу. И названия папок тоже уникальны
  3. Max_Vision
    Max_Vision Aug 17, 2022 Banned 1 Aug 13, 2022
    создаешь в папке public папку images там создаешь допустим папку avatars и при получение аватарки сохраняешь в папку public и относительный путь в бд допустим images/avatarts/ava.png
     
    1. Busido
      Max_Vision, да, всё так. Картинки в папке, а пути к ним, теги, разрешение и прочую инфу в бд. Возможно, в целях экономии места на диске можно сделать механизм разархивации и хранить картинки в архивах
  4. фейслесс
    Закинь все на ебать защищённую флешку, флешку в сейф, сейф в Швейцарский банк
     
  5. whatimdoing
    в бд лучше всего хранить только ссылки на картинки, сами картинки можешь загружать либо в public, либо в storage - в перспективе отправлять все это на cdn сервер
     
  6. Alexs_profile
    Alexs_profile Aug 22, 2022 330 Dec 13, 2020
    Варианта хранения картинки два:
    - хранить в base64 формате прямо в бд
    - качать файл на диск, и в бд хранить путь к файлу
    Касаемо второго способа сразу скажу, что лучше переименовывать файл. Например, в его имя ставить timestamp. Тогда в строка в мускуле будет выглядеть примерно так:
    file_id, user_id, categoty_id, filename, file_path

    Соответственно при таком подходе у тебя может быть две картинки с названием Forest в одной и той же категории.
    Для хранения категорий нужно будет завести еще одну табличку, в которой будет
    category_id, category_name

    Если ты будешь хранить фото первым способом - у тебя будет раздуваться размер бд. При хранении вторым способом, у тебя будет раздуваться диск. Но тк бд и так хранится на диске, то разницы особо нет. Один select запрос на получение пути файла - не сильно нагрузит бд.
    Я тебе описал примерную структуру, которая используется в любых адекватных проектах.
     
  7. lean
    создаешь в папке public папку images там создаешь допустим папку avatars и при получение аватарки сохраняешь в папку public и относительный путь в бд допустим images/avatarts/ava.png
     
Loading...
Top