Skip to content

a FTP file system based on FUSE

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE
GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB
Notifications You must be signed in to change notification settings

ivanium/FUSE-FTP

FUSE-FTP

清华大学《存储技术基础》2018 课程作业,基于 FUSE 的 FTP 文件系统。

小组成员:

郑远航,陈齐斌,秦一鉴,乔一凡

平台支持

  • Linux (fully)
  • BSD (mostly/best-effort)
  • For OS-X, please use OSXFUSE

我们已经在 Ubuntu 16.04 LTS 下测试运行成功,推荐在 Ubuntu 16.04 下安装运行。

库依赖

  • libfuse. 我们的项目本身是基于 libfuse 的,工程内已经内置了 libfuse。
  • Python 3
  • Meson. 工程使用 Meson 和 Ninja 进行构建。我们已经在工程中内置了 Meson。位置在 meson/
  • Ninja. 我们需要 Ninja 版本 >= 1.5.1

安装

从官方网站下载并安装 Ninja:

$ sudo apt-get install ninja-build

构建工程:

$ mkdir build; cd build
$ ../meson/meson.py ..

使用 Ninja 编译,测试,安装 FUSE-FTP

$ ninja
$ sudo ninja install

我们更推荐使用已经提供的脚本进行编译:

# in $ROOT of FUSE-FTP project
$ bash build.sh

运行

使用工程根目录下的 run.sh 脚本运行:

$ bash run.sh

fuse-ftp 会自动将远程 FTP 服务器根目录映射到本机 /mnt/fuse 目录下。

工程结构

FUSE-FTP 的核心代码在 example/ 下,主要有以下几个文件:

├── ftp-test.c
├── ftp.c
├── ftp.h
├── fuse-ftp.c
├── meson.build
└── util.h

其中:

  • util.h 定义了一些辅助函数;
  • ftp.[ch] 定义实现了 FTP 有关操作;
  • fuse-ftp.c 实现了 FUSE 部分的用户函数
  • ftp-test.c 中包含了对 ftp 操作的测试

About

a FTP file system based on FUSE

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE
GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published