Intereting Posts
Prestashop перенаправляет на старый домен после его изменения в базе данных Странные значения x & y POST отправляются в форме Редактирование видео с помощью PHP Как я могу сделать разрыв строки Предпочтительный метод хранения массивов PHP (json_encode vs serialize) Изменение macOS Sierra предотвращает «say», чтобы быть exec'd в скрипте PHP Удалите пробелы вокруг определенного символа с помощью preg_replace Почему моя переменная не помещается в $ _GET? Как определить, доступен ли mod_rewrite? Назначение узла произвольному узлу, как с помощью Libxml2? Перенаправить вывод из команды в пакетном файле, выход которого уже перенаправлен? PHP XML-создатель не поддерживает кодирование в персидском / арабском языках (UTF-8) codeigniter db-> delete () всегда возвращает true? Как запустить программу в фоновом режиме (без блокировки) с помощью php? Как сериализовать форму, хранящуюся в переменной jQuery

Как вы отслеживаете файлы в SMB с помощью приложения?

Я создал приложение с PHP, которое показывает все файлы в домашнем каталоге пользователя, этот каталог также доступен через samba, чтобы вы могли получить доступ к нему из собственного проводника в windows, mac и linux. Я хотел дать каждому файлу идентификатор, чтобы я мог привязывать теги к каждому файлу, как бы вы это сделали? Не могли бы вы сделать хэш файла и посмотреть, будет ли он одинаковым filehash и таким образом заключить, что его тот же файл?

Могу ли я заставить samba отправлять что-то каждый раз, когда файл или папка перемещаются?

Если ваша платформа Linux и установка довольно недавно, вы можете использовать inotify, чтобы ваш PHP-код вызывался при внесении изменений в файл. См. Эту часть руководства по PHP:

http://us3.php.net/manual/en/book.inotify.php

Основное использование – добавить наблюдателя в каталог или каталоги Samba с обратным вызовом к вашему PHP-коду. По соображениям производительности было бы неплохо увидеть, может ли inotify указывать только отправлять типы обновлений, которые вас интересуют, в ваш код.

Обратите внимание, однако, что inotify будет удалять обновления / сообщения через определенный промежуток времени. Таким образом, у вас будут проблемы с синхронизацией вещей в определенный момент времени. Одним из решений было бы использовать inotify на постоянной основе, а также периодически выполнять полное сканирование каждого дома, чтобы убедиться, что оно отражает вашу базу данных (или везде, где хранятся теги).

Чтобы ответить на ваш первый вопрос, создание хэша, конечно, будет работать. Просто использовать md5 для файлов было бы достаточно. Шансы столкновения при хэшировании файлов в вашем домашнем каталоге безумно малы. ИМО, я бы сказал, даже не стоит упоминать. И это, наверное, само собой разумеется, но … Я бы сохранил хотя бы хэш и полный путь, так что вы можете иметь дело с перемещенными файлами надлежащим образом и на самом деле что-то делать с файлом.