[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хранение фотографий пользователей
Страницы: 1, 2
Миша
Каждый пользователь может загружать фотографии, но место на диске ограничено в связи с чем возникает вопрос, как снизить нагрузку (хранения файлов) на сервер?

Как вариант можно использовать для хранения файлов другой сервер. Или вот такой ещё момент:

В таких сетях люди очень любят добавлять себе понравившиеся фотографии (Картинки, цитаты в картинках ...), значит для этого пользователя нужно скопировать эту картинку, а это уже две одинаковых картинки. Или через таблицы установить взаимосвязь, но тогда, если первый пользователь (тот кто загрузил) удалит изображение, то оно удалится у всех. Правильно ли я понимаю, что этот момент нужно делать через таблицы и просто привязывать или отвязывать от картинки. И лишь в том случае, если последний привязанный пользователь удаляет фото, то уже тогда удалять файл физически.

Как думаете?

_____________
Принимаю заказы, писать в ЛС
Valick
Цитата (Медведь @ 19.12.2015 - 09:11)
И лишь в том случае, если последний привязанный пользователь удаляет фото, то уже тогда удалять файл физически.
Миша
Вот ещё вопросик в тему, а если пользователи загружают абсолютно идентичные фотографии, это занимает много места на диске. Что посоветуете? Может есть какой нибудь анализатор для сравнения изображений. Хотя я понимаю, что это будет очень долго, при большом количестве фотографии. Как говорится двух зайцев не поймаешь.. Кто может прокомментировать?

_____________
Принимаю заказы, писать в ЛС
neadekvat
Можно, конечно, искать хэш от файла и сравнивать, но будут коллизии. А если использовать алгоритм, при котором коллизии будут исключены (или минимизированы), то вычисление такого хэша может стоить дороже дискового пространства.
sergeiss
Медведь, для начала давай разберемся, какова вероятность того, что пользователи загрузят совершенно идентичные фотографии? Для этого нужно, чтобы они были взяты из одно и того же источника. Так какой это будет процент от общего количества фотографий?
Вопрос к тому, что стоит ли заморачиваться данной темой, если дублей будет, например, 10е-5 от общего числа фоток? Проверять ты будешь каждый раз, для каждой фотки, но полные дубли найдешь для очень малого количества. В итоге, я думаю, дешевле будет хранить эти дубли как отдельные фото, чем каждый раз напрягать систему.

Если же ты "вдруг" захочешь анализировать сходные фотографии, например, когда одна является уменьшенной копией другой или с очень сходным содержанием, то тогда это будет еще более сложный алгоритм, чем просто идентичные находить.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
Ну например: какой-то неадекват захочет проверить вместимость моего сервера wink.gif Загрузив абсолютно одинаковое изображение, до самого предела жёсткого диска.

_____________
Принимаю заказы, писать в ЛС
Ron
Я сделал через md5, вполне хватает. Но у меня более 100-200к фоток на проекте врядли когда-то будет. Можно сделать 2 ключа, как посоветовал кажется killer8080, вероятность одновременной колизии по двум алгоритмам нулевая.
sergeiss
Таких неадекватов надо останавливать другими средствами, например, лимитом сообщений для одного пользователя. Потому что он же может взять и разные фото откуда-нибудь из сети и твоя проверка на полные дубли никак не поможет.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
Лимит сообщений имеется, но один человек может пройти регистрацию неоднократно, со всеми вытекающими. Отлавливать по IP - почти бесполезно.

_____________
Принимаю заказы, писать в ЛС
sergeiss
Медведь, а если юзер автоматизирует изменения фото таким образом, что это будет одно и то же фото, но файлы будут разные? И плюс к этому он автоматизирует регистрацию, чтобы слать с разных аккаунтов РАЗНЫЕ (хотя формально одинаковые) фото? И таких "если" можно набрать очень много.
Но ты так и не ответил на вопрос "какова вероятность такого события". Любого события, от которого ты собираешься защищаться. "Стоит ли овчинка выделки" - вот в чем вопрос. Иначе ты можешь делать бесконечную защиту, занимаясь только ей в ущерб всему остальному. А с моей точки зрения ты именно этим и собираешься заниматься.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
bestxp
как будешь бороться с фрагментацией при удалении данных?

По сути раз загрузил и это навсегда ИМХО
andrey888
Медведь можешь сделать регистрацию через соц сети... там теперь уже не так просто создавать много аккаунтов .

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
icedfox
Цитата (Медведь @ 10.01.2016 - 14:13)
но один человек может пройти регистрацию неоднократно, со всеми вытекающими. Отлавливать по IP - почти бесполезно.

Кто мешает усложнить жизнь юзеру ?
-Юзер зарегался и у него изи профиль, не позволяющий ничего делать на сайте, что бы профиль стал например мембер ему нужно одно из , на выбор:
1. ждать 10 дней.
2. Пройти подтверждение регистрации по телефону.

Ну и собственно все. Твоя головная боль решена. Ждем нового топика с темой "Реализация подтверждения по SMS" wink.gif
Миша
Цитата (icedfox @ 11.01.2016 - 21:04)
Ждем нового топика с темой "Реализация подтверждения по SMS" wink.gif

Была уже - найдено решение, но очень затратное.

_____________
Принимаю заказы, писать в ЛС
icedfox
Медведь, юзаю EpochtaSMS.ru , дешево . Процент не дошедших SMS примерно 10-15% , решается повторной отправкой.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.