@QPrincess

Как найти одинаковые файлы?

Нужно найти все одинаковые файлы с разными именами в различных папках на сервере. Также хотелось бы сразу знать есть ли уже такой файл, если юзер загружает новый файл.
Как вариант у каждого файла вычислить хеш md5, размер и записать в бд, после искать совпадения по базе.

Но может есть готовое решение для этого?
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Как вариант у каждого файла вычислить хеш md5
Да, притом, и на клиенте и на сервере.
На сервере - для тех, что уже на сервере.
На клиенте - для загружаемого файла (через JS в браузере перед отправкой), чтобы не грузить уже имеющийся на сервере и сразу отправить только хеш для получения результата: качать или уже такой есть.

Чтобы ускорить процесс - можно вначале собрать дирлист с размерами файлов и объединить одинаковые размеры в кластеры. И уже в них - выявлять: одинаковые там файлы или нет.
Кластеры - можно сохранить и обновлять в БД.
Чтобы быстрее было по размеру искать нужные файлы (не по хешу!).
Вариантов оптимизации - много и зависит от задачи.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Как вариант у каждого файла вычислить хеш md5 и записать в массив, вида хеш => путь, по которому сразу же и искать.

Но может есть готовое решение для этого?

Готовое решение пишется в три строчки и очень полезно для общего развития.
Ответ написан
Комментировать
pdacity
@pdacity
Опытный проктолог человеческих душ
Как вариант использовать rsync который из короби это уже умеет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы