Я пишу файловую систему FUSE только для чтения, которая абстрагирует доступ к удаленной файловой системе. Для создания файла удаленной файловой системе требуется идентификатор пользователя, токен и идентификатор файла.
Если я смонтировал файловую систему FUSE в / mnt / rfs, и программа пытается открыть файл / mnt / rfs / user / token / fileid, FUSE инициирует три вызова getAttr, один для / user, один для / user / token и один для / user / token / fileid.
Есть ли какой-нибудь способ обнаружить из вызова getAttr, что этот конкретный вызов для последнего элемента в пути? Очевидно, что если я знаю, как работает мой сервис, я могу просто подделать каталоги для первых двух элементов, а затем загрузить файл в некоторое локальное хранилище tmp, используя информацию user / token / fileid. Но это хакерское и хрупкое.