@QPrincess

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
РосТендер Москва
от 130 000 до 150 000 ₽
Amigoweb Магнитогорск
от 40 000 до 70 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
17 февр. 2020, в 00:30
1500 руб./за проект
16 февр. 2020, в 22:28
2000 руб./за проект