Как и любой другой сетевой файловой системе, FUSE понадобится базовый транспортный уровень.Это не поможет вам, если что-то на удаленной машине не сможет обработать фактический ввод-вывод для вас.
В ваших аргументах fuse вы устанавливаете обработчики для вещей, которые вы хотите, чтобы файловая система могладля обработки, например:
static struct fuse_operations const myfs_ops = {
.getattr = my_getattr,
.mknod = my_mknod,
.mkdir = my_mkdir,
.unlink = my_rm,
.rmdir = my_rmdir,
.truncate = my_truncate,
.open = my_open,
.read = my_read,
.write = my_write,
.readdir = my_readdir,
.create = my_create,
.destroy = my_destroy,
.utime = my_utime,
.symlink = my_symlink
};
Это код одной из моих текущих реализаций FUSE, переписанный в общем виде.Как видите, вам нужно как минимум реализовать open
, read
, write
и close
для минимально функциональной FS.
Эти члены являются функциями, которые выполняют эти операции.Они могут использовать HTTP, SSH, FTP, собственный протокол, что угодно.Но вы должны написать их, и что-то на удаленном сервере должно ответить на них.
Чтобы ответить на ваш вопрос напрямую, FUSE (сам по себе) не будет делать то, что вы хотите, если только выреализовать функциональность самостоятельно.