Intereting Posts
jquery ui автозаполнение с базой данных Как разобрать любой формат даты Невозможно вставить в базу данных MySQL с помощью PDO … Нет ошибок Как использовать Imagick для слияния и маскировки изображений? Зачем скручивать игнорировать CURLOPT_TIMEOUT_MS (но чтить CURLOPT_TIMEOUT)? Как написать миграцию для вставки записей с помощью phinx? Использование проверки ядра в пользовательской проверке на CakePHP Forms / Models? Как отладить в PHPStorm со встроенным веб-сервером с помощью инструмента командной строки Symfony Добавить HTML-коды в XML-файл с помощью PHP Работа в Cron Как сделать совпадение символов в точках с использованием регулярных выражений codeigniter – выберите из 2 таблиц с одинаковым именем столбца PHP Postgres PDO драйвер не поддерживает подготовленный оператор? Как поместить строку в массив, разделить на новую строку? Mysql Вставка или Обновление данных таблицы таблицы в другую таблицу с помощью соответствия valus

Как вы отслеживаете файлы в 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 для файлов было бы достаточно. Шансы столкновения при хэшировании файлов в вашем домашнем каталоге безумно малы. ИМО, я бы сказал, даже не стоит упоминать. И это, наверное, само собой разумеется, но … Я бы сохранил хотя бы хэш и полный путь, так что вы можете иметь дело с перемещенными файлами надлежащим образом и на самом деле что-то делать с файлом.