Каждый пользователь может загружать фотографии, но место на диске ограничено в связи с чем возникает вопрос, как снизить нагрузку (хранения файлов) на сервер?
Как вариант можно использовать для хранения файлов другой сервер. Или вот такой ещё момент:
В таких сетях люди очень любят добавлять себе понравившиеся фотографии (Картинки, цитаты в картинках ...), значит для этого пользователя нужно скопировать эту картинку, а это уже две одинаковых картинки. Или через таблицы установить взаимосвязь, но тогда, если первый пользователь (тот кто загрузил) удалит изображение, то оно удалится у всех. Правильно ли я понимаю, что этот момент нужно делать через таблицы и просто привязывать или отвязывать от картинки. И лишь в том случае, если последний привязанный пользователь удаляет фото, то уже тогда удалять файл физически.
Как думаете?
_____________
Принимаю заказы, писать в ЛС
Valick
19.12.2015 - 10:23
Цитата (Медведь @ 19.12.2015 - 09:11) |
И лишь в том случае, если последний привязанный пользователь удаляет фото, то уже тогда удалять файл физически. |
Вот ещё вопросик в тему, а если пользователи загружают абсолютно идентичные фотографии, это занимает много места на диске. Что посоветуете? Может есть какой нибудь анализатор для сравнения изображений. Хотя я понимаю, что это будет очень долго, при большом количестве фотографии. Как говорится двух зайцев не поймаешь.. Кто может прокомментировать?
_____________
Принимаю заказы, писать в ЛС
neadekvat
9.01.2016 - 23:40
Можно, конечно, искать хэш от файла и сравнивать, но будут коллизии. А если использовать алгоритм, при котором коллизии будут исключены (или минимизированы), то вычисление такого хэша может стоить дороже дискового пространства.
sergeiss
10.01.2016 - 01:06
Медведь, для начала давай разберемся, какова вероятность того, что пользователи загрузят совершенно идентичные фотографии? Для этого нужно, чтобы они были взяты из одно и того же источника. Так какой это будет процент от общего количества фотографий?
Вопрос к тому, что стоит ли заморачиваться данной темой, если дублей будет, например, 10е-5 от общего числа фоток? Проверять ты будешь каждый раз, для каждой фотки, но полные дубли найдешь для очень малого количества. В итоге, я думаю, дешевле будет хранить эти дубли как отдельные фото, чем каждый раз напрягать систему.
Если же ты "вдруг" захочешь анализировать сходные фотографии, например, когда одна является уменьшенной копией другой или с очень сходным содержанием, то тогда это будет еще более сложный алгоритм, чем просто идентичные находить.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Ну например: какой-то неадекват захочет проверить вместимость моего сервера

Загрузив абсолютно одинаковое изображение, до самого предела жёсткого диска.
_____________
Принимаю заказы, писать в ЛС
Я сделал через md5, вполне хватает. Но у меня более 100-200к фоток на проекте врядли когда-то будет. Можно сделать 2 ключа, как посоветовал кажется killer8080, вероятность одновременной колизии по двум алгоритмам нулевая.
sergeiss
10.01.2016 - 01:25
Таких неадекватов надо останавливать другими средствами, например, лимитом сообщений для одного пользователя. Потому что он же может взять и разные фото откуда-нибудь из сети и твоя проверка на полные дубли никак не поможет.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Лимит сообщений имеется, но один человек может пройти регистрацию неоднократно, со всеми вытекающими. Отлавливать по IP - почти бесполезно.
_____________
Принимаю заказы, писать в ЛС
sergeiss
10.01.2016 - 12:37
Медведь, а если юзер автоматизирует изменения фото таким образом, что это будет одно и то же фото, но файлы будут разные? И плюс к этому он автоматизирует регистрацию, чтобы слать с разных аккаунтов РАЗНЫЕ (хотя формально одинаковые) фото? И таких "если" можно набрать очень много.
Но ты так и не ответил на вопрос "какова вероятность такого события". Любого события, от которого ты собираешься защищаться. "Стоит ли овчинка выделки" - вот в чем вопрос. Иначе ты можешь делать бесконечную защиту, занимаясь только ей в ущерб всему остальному. А с моей точки зрения ты именно этим и собираешься заниматься.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
bestxp
11.01.2016 - 11:44
как будешь бороться с фрагментацией при удалении данных?
По сути раз загрузил и это навсегда ИМХО
andrey888
11.01.2016 - 12:05
Медведь можешь сделать регистрацию через соц сети... там теперь уже не так просто создавать много аккаунтов .
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
icedfox
11.01.2016 - 21:04
Цитата (Медведь @ 10.01.2016 - 14:13) |
но один человек может пройти регистрацию неоднократно, со всеми вытекающими. Отлавливать по IP - почти бесполезно. |
Кто мешает усложнить жизнь юзеру ?
-Юзер зарегался и у него изи профиль, не позволяющий ничего делать на сайте, что бы профиль стал например мембер ему нужно одно из , на выбор:
1. ждать 10 дней.
2. Пройти подтверждение регистрации по телефону.
Ну и собственно все. Твоя головная боль решена. Ждем нового топика с темой "Реализация подтверждения по SMS"
Цитата (icedfox @ 11.01.2016 - 21:04) |
Ждем нового топика с темой "Реализация подтверждения по SMS" |
Была уже - найдено решение, но очень затратное.
_____________
Принимаю заказы, писать в ЛС
icedfox
11.01.2016 - 21:17
Медведь, юзаю EpochtaSMS.ru , дешево . Процент не дошедших SMS примерно 10-15% , решается повторной отправкой.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.