Проверка файла-изображения на дубли при загрузке на сервер.

12
muratti
На сайте с 31.05.2008
Offline
238
1220

Возможно ли проверять загружаемое на сервер изображение (формата .gif), на предмет уже нахождения такого же? Надо как-то запретить заливать точно такое же изображение, которое было залито, например, другим пользователем на сайте.

Есть какие-то решения, хотя бы минимальные? )

Mad_Man
На сайте с 10.11.2008
Offline
162
#1
muratti:
Возможно ли проверять загружаемое изображение на сервер (формата .gif), на предмет уже нахождения такого же? Надо как-то запретить заливать точно такое же изображение, которое было залито, например, другим пользователем на сайте.

Есть какие-то решения, хотя бы минимальные? )

md5 хэш каждого изображения писать в БД или отдельный файл и сверять с базой при новой загрузке.

muratti
На сайте с 31.05.2008
Offline
238
#2
Mad_Man:
md5 хэш каждого изображения писать в БД или отдельный файл и сверять с базой при новой загрузке.

Если изображений на сервере будет 100500 тыщ, я так понимаю, эта проверка будет жесткая? :D

Mad_Man
На сайте с 10.11.2008
Offline
162
#3
muratti:
Если изображений на сервере будет 100500 тыщ, я так понимаю, эта проверка будет жесткая?

Таки да, других вариантов не вижу. Ну разве что не md5, а что-нибудь покороче :)

muratti
На сайте с 31.05.2008
Offline
238
#4

Вот тут в аську прилетело, какой-то ответ-вопрос. :D Я в этом дерево, может, кто-то расшифрует это все, катит оно или нет и какие "последствия" сего действа?

1. Есть вариант - после рестарта сервера запустить на нем программу, в которой создать динамический массив и запихать в него MD5 хеш всех изображений (возможно не только MD5, но и по п.2 добавлять еще что то), при добавлении картинки пробегаться предварительно по массиву, и если изображение уже есть то не закачивать его, а выдавать ссылку на найденное изображение, если нет - добавлять в массив. И раз в час сохранять массив в файл, с учетом текущей даты.

2. Есть варианты совпадения MD5 хеша разных файлов (редко, но есть). Может имеет смысл составлять карту RGB? (Ну не всего изображения, а какой либо его части?)
Z
На сайте с 08.07.2009
Offline
95
#5

Тоже было бы интересно такое, например для фотохостинга: Фотка загружается, проверяется и если есть такаяже фотка выдается на нее ссылка, а не одну фотку по пятьсот раз держать на серве..а можно на впску в локалке поставить?, этот скрипт.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

Да легче по ресурсам хранить этот дубль файла и всё. Чем вычислять и т.п.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
T
На сайте с 13.04.2008
Offline
67
t3s
#7
muratti:
Если изображений на сервере будет 100500 тыщ, я так понимаю, эта проверка будет жесткая? :D

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

вы бы уточнили задачу т.к. если смысл "просто не допустить дублей потому что так захотелось" то согласен с мнением LEOnidUKG

webamator (http://webamator.ru) приглашает потестить сервис бесплатной оптимизации CSS и JavaScript (http://service.webamator.ru/) Занимаюсь проектами любой сложности. Качественно. Дорого. Примеры некоторых работ (http://blog.webamator.ru/category/portfolio)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#8

Я хочу ещё добавить, если файл валяется уже пол года и никто к нему не обращается, то просто его удалять по крону. Это решит, от части, проблему с дублями.

H
На сайте с 31.10.2008
Offline
33
#9

Сделать выборку из таблицы в 100500 записей - задача не сложная даже для mysql. Да даже если их будет миллион. А если использовать хранилища типа ключ-значение с кэшированеим - выборка будет длиться микросекунды. И да. Стоимость хранения информации с каждым днем стремится к нулю, так что, можно и дубли хранить

A
На сайте с 29.12.2007
Offline
68
#10

1. получить md5 файла

2. проверить, есть ли такой файл в каталоге: /images/aa/bb/cc/aabbccddeeff0011.gif

3. если есть - значит это дубль, иначе сохраняем изображение под md5-названием

данная схема работает на десятке сайтов, нареканий пока что нет.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий