@QPrincess

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 13:31
10000 руб./за проект
19 апр. 2024, в 13:12
35000 руб./за проект
19 апр. 2024, в 13:06
6000 руб./за проект