Я бы хотел, чтобы мое приложение отображало список каталогов с удаленного FTP (или SFTP и т. Д.) Местоположения. Когда файл / каталог изменяется в дереве удаленного каталога, приложение должно обновить свое представление соответствующими изменениями.
Поскольку обход всего дерева медленный и расточительный, я бы хотел использовать что-то вроде FSEvents (inotify / kqueues в Linux), но, очевидно, эти библиотеки основаны на файловой системе, и соединение с сервером FTP не то же самое, что смонтированная файловая система.
Для того, чтобы эти библиотеки работали, мне нужно на самом деле смонтировать файловую систему с поддержкой FTP / SFTP на локальном компьютере, а затем подключить FSEventStream (или kqueue и т. Д.) К этому локальному монтированию. Я знаю, что FUSE может это сделать, но есть ли способ использовать FUSE без необходимости его установки пользователем? Я имею в виду, могу ли я связать его с моим (Mac) приложением и создать монтирование, не заставляя пользователя проходить процесс установки пакета установки для копирования libfuse и модулей ядра в систему? Предполагается ли, что существует /dev/fuse
, или он может существовать вне пути /dev/
внутри каталога моего приложения?
Хорошие Mac-приложения устанавливаются простым перетаскиванием, и я хотел бы сохранить мои так, если это возможно. Мне неясно, возможно ли использовать libfuse напрямую (при условии, что файлы включены в приложение), без установки его в системных путях.
В качестве альтернативы, у кого-нибудь есть другие предложения по мониторингу изменений по FTP без опроса?