• FUSE扩展
    • 如何启动seaf-fuse
      • 创建一个目录作为挂载点
      • 用脚本来启动seaf-fuse
      • 使用 Ceph 的特有说明
      • 停止seaf-fuse
    • 挂载目录的内容
      • 顶层目录
      • 每个用户的目录
      • 资料库的目录
      • 如果出现”Permission denied”的错误

    FUSE扩展

    在Seafile系统上文件被分割成数据块,这意味着在你的Seafile服务器上存储的并不是完整的文件而是数据块。这种设计能够方便有效的运用数据去重技术。

    然而,有时系统管理员想要直接访问服务器上的文件,你可以使用seaf-fuse来做到这点。

    Seaf-fuse是一种FUSE虚拟文件系统的实现. 一句话来说就是,它挂载所有的Seafile文件到一个目录(它被称为’’’挂载点’’’),所以你可以像访问服务器上的正常目录一样来访问由Seafile服务器管理的所有文件。

    注意:

    • 加密的目录不可以被seaf-fuse来访问。
    • Seaf-fuse的当前实现是只读访问,这意味着你不能通过挂载的目录来修改文件。
    • 对于debian/centos系统,你需要在“fuse”组才有权限来挂载一个FUSE目录。

    如何启动seaf-fuse

    假设你想挂载到/data/seafile-fuse.

    创建一个目录作为挂载点

    1. mkdir -p /data/seafile-fuse

    用脚本来启动seaf-fuse

    注意: 在启动seaf-fuse之前, 你应该已经通过执行./seafile.sh start启动好Seafile服务器。

    1. ./seaf-fuse.sh start /data/seafile-fuse

    自从社区版4.2.1和专业版4.2.0开始,脚本支持FUSE的标准挂载。例如,你可以指定以挂载目录的所有者。

    1. ./seaf-fuse.sh start -o uid= /data/seafile-fuse

    您可以使用 man fuse 来查找所有支持选项。

    使用 Ceph 的特有说明

    如果您使用Ceph作为后端存储,为了要求 fuse 程序不运行为守护进程,在执行 seaf-fuse.sh 脚本时您需要加上 -f 选项。否则在访问文件时,fuse程序将会有奇怪的“冻结”行为。

    1. ./seaf-fuse.sh start -f /data/seafile-fuse

    停止seaf-fuse

    1. ./seaf-fuse.sh stop

    挂载目录的内容

    顶层目录

    现在你可以列出/data/seafile-fuse目录的内容

    1. $ ls -lhp /data/seafile-fuse
    2.  
    3. drwxr-xr-x 2 root root 4.0K Jan 1 1970 abc@abc.com/
    4. drwxr-xr-x 2 root root 4.0K Jan 1 1970 foo@foo.com/
    5. drwxr-xr-x 2 root root 4.0K Jan 1 1970 plus@plus.com/
    6. drwxr-xr-x 2 root root 4.0K Jan 1 1970 sharp@sharp.com/
    7. drwxr-xr-x 2 root root 4.0K Jan 1 1970 test@test.com/
    • 顶层目录包含许多子目录,每个子目录对应一个用户

    每个用户的目录

    1. $ ls -lhp /data/seafile-fuse/abc@abc.com
    2.  
    3. drwxr-xr-x 2 root root 924 Jan 1 1970 5403ac56-5552-4e31-a4f1-1de4eb889a5f_Photos/
    4. drwxr-xr-x 2 root root 1.6K Jan 1 1970 a09ab9fc-7bd0-49f1-929d-6abeb8491397_My Notes/

    从上面的列表可以看出,在用户目录下有一些子目录,每个子目录代表此用户的一个资料库,并且以’’’{库id}-{库名字}’’’的格式来命名。

    资料库的目录

    1. $ ls -lhp /data/seafile-fuse/abc@abc.com/5403ac56-5552-4e31-a4f1-1de4eb889a5f_Photos/
    2.  
    3. -rw-r--r-- 1 root root 501K Jan 1 1970 image.png
    4. -rw-r--r-- 1 root root 501K Jan 1 1970 sample.jpng

    如果出现”Permission denied”的错误

    如果你运行./seaf-fuse.sh start时,遇到”Permission denied”的错误信息, 很有可能你没有在“fuse用户组”解决方法:

    • 把你的用户加到fuse组

      1. sudo usermod -a -G fuse
    • 退出shell重新登陆

    • 现在试着再一次执行./seaf-fuse.sh start <path>