На сайте планируется очень большое количество качественных изображений.
Около 2-х тысяч.
Я знаю, что изображения можно хранить в виде файлов на диске (привычный ранее способ) а также, при использовании CMS, в базе этой CMS, например MySQL.
Средний размер каждого файла порядка 3-х мегабайт.
Вопрос в том, какой способ выбрать.
Цели 2:
1. Ускорить работу сайта.
2. Хоть немного усложнить "работу" сайтопи$дам-вэбмастерам.
Если есть альтернатива, прошу. (Сайт планируется строить на Друпал 6.9)
Комментарии
Второй пункт не понял (как можно усложнить работу «сайтопи$дам-вэбмастерам», когда имидж в конечном счете будет на экране ?):) но с точки зрения производительности - однозначно в файловой системе (особено файлы такого размера)
Однозначно рисунки выгоднее хранить в файловой системе. БД является узким местом каждого вебсайта.
По поводу защиты от сайтопиз...в. Существует возможность запретить доступ к рисункам не с вашего сайта с помощью .htaccess. Подробнее про это рассказать не могу - встречал недавно, но не могу вспомнить где именно.
Интересно ваше мнение.
Значит, файловая система...
Просто сейчас так много программ для копирования содержимого сайтов..
Придётся, видно, гадить копирайтом на каждой фотографии. Всё равно "выкачают".
А у нас не хватает ума как защитить файлы на сервере от тупого "выкачивания"...
Спасибо, будем учиться. Это никогда не поздно
Если будешь хранить в базе данных, то тебя хостер застрелит через пару секунд.
Разумное решение гадить копирайтом только если доступ к картинке пришел из вне.
А так как обычно боты скачивают, то запретить этим ботам доступ на сайт.
Тут вопрос в другом, для каких целей пользователь скачал картинки с сайта.
Для себя или для коммерческого использования.
Можно конечно заморочиться и настроить elite xml website на вывод картинок друпала, но это достаточно сложно и не для всех сайтов потянет, хотя возможностей будет куча. Защиту от того, что бы не тоскали картинки можно сделать на уровне сервера или просто ставить watermark на картинки, что тоже полезно. Ещё есть способ, прописать в .htaccess защиту основанную на user-agent этих программ.
Для небольшого количества файлов (измеряя в тысячах) предпочтительно хранить на жестком диске мне кажеться. Но если измерять количество в миллионах то скорее всего лучше в базе данных, ведь если будет такое большое количество файлов то что станет с файловой системой ? А база данных в данном случае увеличиться в размерах но работать будет
Мое личное субъективное мнение.
Не верно. Просто проанализируйте для чего это делается. И хорошим примером будет служить тот факт, что социальные сети хранят в файлах. База вообще абсурд.
В полне возможно
Всеже правильность определяется задачей. Простым является стандартный способ хранения файлов. А для некоторых задач более подходят базы данных.
Только файлы.
От воровства контента не защититься никак.
Безусловно только в файловой системе.
От воровства контента защитится не так уж трудно.
Вот идеи:
1. В каталог с файлами ставится .htaccess запрещающий прямой доступ к файлам по HTTP
2. Картинки отдаются только через PHP-скрипты
3. В скрипты встроить защиту с лимитом скачиваний за минуту/час/день (кому как нравится) с конкретного IP.
4. Если не очень затратно по ресурсам, то можно этими же скриптами прилеплять к картинкам watermark с URL-сайта.
От непосредственного скачивания имиджов защитится можно, но
глобальной защиты все таки не получится, я не зря написал (в первом комменте), что елси имидж уже на экране вашего компьютера, то он уже есть в кэше вашего браузера, а значит защитить его нельзя
а если вы не выдаете имидж на экран броузера, то зачем его держать на сервере ...
Защита в виде watermark-ов - ну в принципе можно но особого смысла не вижу ...
Единственная защита - юридическая, искать тех кто в обход ваших копирайтов использует ваш контент и предьявлять им претензии
Всё зависит ещё от целей защиты!
Например у человека галерея в миллион картинок (ну пусть нескольких тысяч). Браузером такую галерею не вытянуть и за год! А вот роботом (если никакой защиты не стоит) это сделать можно быстро!
Опять же наличие watermark гарантирует, что не будет проблем с доказательством авторских прав на данное изображение, если например картинка выкладывается с правами "только смотреть", но с запретом на распространение, а недобросовестные пользователи на этот запрет плюют.
1)От робота не защититься никак.
2)делать частотомерку для ip и куда её класть? посещаемый ресурс вполне себе может леч полежать. При этом - роботу вобще говоря спешить некуда - будет тянуть одну картинку в 3-4 секунды - и всё. за несколько суток стянется всё что угодно
1. С чего вы взяли? Помоему я уже написал как можно защитится
2. Частотомерку можно класть в БД (например MySQL). Посещаемый ресурс никуда лечь и полежать не ляжет. Тут всего-то надо при вызове страницы, выполнить два запроса: SELECT и UPDATE. Тот же Drupal выполняет десятки запросов к БД при вызове практически любой страницы и ещё никуда не лёг. Да, роботу спешить некуда, но после скажем 100 скачиваний в течении часа, ему придётся отдохнуть сутки. Вот и посчитайте сколько у такого робота займёт скачивание хотя бы 10 000 картинок. Таким образом ваши "несколько суток" превращаются в 100 дней. А если поумничать и ввести дополнительную обработку (скажем если двое суток подряд по 100 картинок, то в бан на неделю), то вообще период скачивания может растянуться на годы
Спасибо всем давшим консультацию!
Файлы.. только файлы .. > база.. только база..
Значит, выбираем файлы.
Да простят меня коллеги, но файлы нужно хранить в БД, НО при этом копию в файловой системе.
Т.е. при обращении к файлу смотрится его наличие в файловой системе, если нет - создаем из БД копию в файловой системе, и при последующих обращениях уже в БД не лезем.
Но Drupal так не делает.
Зачем?
Файлы в внутри нод - это часть контента, хранение контента должно быть единообразно.
При переносе сайта достаточно просто перенести БД.
и получить охрененную нагрузку на базу.