|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
Как лучше хранить миниатюры14.05.2016, 03:43. Показов 2020. Ответов 12
Метки нет (Все метки)
Как стоит хранить миниатюры изображений в базе данных?
Варианта у меня три. - Как и все остальные файлы, в той же таблице (в этой таблице есть поля type и data отвечающие за ассоциацию записи и можно указать например thumb_200 и id) - Создать отдельную упрощённую таблицу thumbs вида id, size, original_id - Добавлять постфикс к системному (уникальному) имени файла. Например name_thumb200, name_thumb600
0
|
|
| 14.05.2016, 03:43 | |
|
Ответы с готовыми решениями:
12
Как лучше хранить переписку? Как лучше хранить список системных файлов Как и где лучше хранить Мета теги |
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 14.05.2016, 06:45 | |
|
Я не понял -- миниатюры или их названия? Если названия, то достаточно одной таблицы, в которой есть имя оригинального изображения.
Сами миниатюры хранить в отдельной папке (thumbs) с точно таким же именем, как и у оригинала. Когда нужно вывести оригинал -- пишите так: /путь/к/папке/имя изображения. Когда надо вывести миниатюру -- пишите так: /путь/к/папке/thumbs/имя изображения. Где "имя изображения" -- значение из поля в базе.
1
|
|
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 14.05.2016, 13:25 [ТС] | |
|
Para bellum, а если мне нужна непредсказуемость пути к файлу?
Например только определённая группа (скажем vip) могут смотреть полную версию статьи и им нельзя подбирать адрес полноразмерной картинки. Как тогда лучше поступить?
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 14.05.2016, 15:15 | |
|
Ну, в таком случае, можно делать запрос не напрямую к картинке, а через php. Ну, вроде:
http://example.com/getimage?id=819647&type=thumb А оригинал получать так: http://example.com/getimage?id... e=original В скрипте отдачи проверять, есть ли права для просмотра оригинала.
0
|
|
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 14.05.2016, 17:48 [ТС] | |
|
Para bellum, Нет нет. Я всегда формирую страницу по чистому html. Без дополнительных запросов.
Сразу отдаю url. Да и это не выход. Если человек понимает алгоритм работы, ему не составит труда модифицировать ссылку превьюшки убрав /thumb например.
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 15.05.2016, 09:58 | |
|
0
|
|
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 15.05.2016, 11:45 [ТС] | |
|
Para bellum, это не имеет значения. Если человек получит ссылку на картинку, зная алгоритм он может получить доступ к её любой версии просто установив нужный размер, ведь все ссылки устроены одинаково.
Да и отдавать картинки php скриптом прошлый век и совсем не практично.
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
||||||||
| 15.05.2016, 12:16 | ||||||||
Серверу до фонаря, кто у Вас там VIP, а кто обычный -- он отдаст картинку и всё. Поэтому отдавать картинку нужно с помощью ЯП.
0
|
||||||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 15.05.2016, 15:58 [ТС] | |
|
Para bellum,
![]() Очень смешное недопонимание. Повторю, вдруг вы поймёте. Если я получил прямую ссылку на картинку любой версии, например site/img/thumb_micro/img.jpg, я смогу получить доступ к полной версии картинки так например: site/img/original/img.jpg Вопрос только в том когда я получу ссылку на изображение.
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
||
| 16.05.2016, 17:27 | ||
|
0
|
||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|||||||||||||
| 16.05.2016, 17:57 | |||||||||||||
|
Вы закидываете картинки в хранилище, недоступное извне, например site.ru/private/images/0001.jpg, при этом закрыв доступ к папке, подпапкам и самим изображениям через файл .htaccess.Далее если вам нужно показать картинку - используете ссылку, как показали выше:
Примерная логика скрипта:
Подробней тут.
1
|
|||||||||||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 17.05.2016, 13:12 [ТС] | |
|
Jodah, а, хорошо. Так действительно всё сработает.
Ссылку не читал, но думаю там просто указано что в хедер стоит указывать тип jpg/png/gif... Но такой вариант всё равно излишне сложный. Ну и лично я всегда считал неправильным такое решение. Конечно кроме вариантов вроде файлообменников или хранилищ картинок где это оправданно. Я озадачен лишь тем как хранить картинки. А отдаю я всегда честную прямую ссылку. Что скажете? Как по вашему стоит хранить изображения?
0
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|
| 17.05.2016, 14:07 | |
|
AlexBitard, вариантов очень много. Когда-то видел отличную статью на хабре по этой теме, жаль потом сколько не искал её, так и не удалось найти... там перечислялись распространённые способы организации картинок.
Лично я пока что пришёл к такому решению: 1. Оригиналы картинок храню вместе с другим скрытым от лишних глаз контентом, например в той же site.ru/private/images/. Это необязательно, но лично мне так проще делать бекапы, поскольку бекап кэшированных (уменьшенных) копий мне не нужен.2. Кэшированные копии храню в следующем виде: site.ru/images/products/106000/105040/105031_120x120.jpgТ.е. беру id картинки, округляю до тысяч - это первая папка. Затем округляю до десятков - это вторая папка. Затем id картинки и размеры. Когда изображений становится слишком много - приходится разбивать их на 2-3 уровня папок, поскольку иначе в каждой папке копится слишком большое количество изображений (тем более если нужно делать много копий разных размеров - кол-во картинок растёт с жуткой скоростью). Подобное разбиение на уровни позволяет упростить навигацию, да и меньше ресурсов таким образом съедается (в теории, на практике не проверял). Изначально схема (в той статье, о которой писал выше) выглядела немного иначе - берётся md5 от id, и затем первые несколько символов представляют собой 1-ую папку, затем 2-ую и т.д., т.е. нечто вроде: 202cb962ac59075b964b07152d234b70 - md5 от картинки с id = 123site.ru/images/20/2c/b962ac59075b964b07152d234b70.jpg - итоговый путь к картинке.Разумеется, нужно смотреть на потенциальный объём картинок. Если всего их на сайте будет не больше 200-300 штук - можно сделать как предложил выше Para bellum, да и ваши варианты из 1-го сообщения тоже подойдут. Я считаю, однозначного решения здесь нет, нужно просто брать тот вариант, который больше нравится. И не является слишком простым или избыточным для конкретной задачи, конечно.
1
|
|
| 17.05.2016, 14:07 | |
|
Помогаю со студенческими работами здесь
13
Как лучше хранить значение главной аватарки? Как лучше хранить(шифровать) секьюрные данные в базе? Где лучше хранить информацию Где лучше хранить контент?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|