Skip to content

poi0qwe/seafile-server-learn

Repository files navigation

Seafile-Server结构

seafile-server项目结构

以下内容为编译相关

  • autogen.sh

    用于自动生成makefile、configure的脚本。

    完整的工具链详见Wiki - GNU Autotools,流程图如下:

    在这里插入图片描述

  • configure.ac

    编译配置。

    可以从中看到编译该项目所需的全部Makefile.am,进而确认哪些目录中的源代码需要被编译。

  • Makefile.am

    编译规则。

    该文件与configure.ac结合生成Makefile.in。在随后的过程中通过一系列步骤生成Makefile。

    可以从中看到编译某部分内容所需要的所有源代码,以及该部分源代码的类型(库文件、头文件、源文件等)。

  • 与autoconf有关。

以下内容为开源相关

以下内容为客户端源代码

  • 通过python实现了seafile服务端对应的的RPC客户端。

    此子项目依赖pysearpc,一个Searpc的Python Binding(Python调用C库)。详见【libsearpc】。

    • seafile

      初步实现了一个RPC客户端。可以连接到指定的RPC服务端。

    • seaserv

      进一步封装RPC客户端,并加入了异常处理。可以通过环境变量以及配置文件来连接到指定的RPC服务端。

以下内容为C语言实现的服务端源代码

  • 库文件。

  • 头文件。

  • 通用源文件。

  • C实现的用户空间文件系统(Filesystem in Userspace)。

  • C实现的服务端核心。分为Seaf API(RPC协议)和Http API(Http协议)。

    其中Seaf API用于向Seahub提供文件访问服务,Http API用于向桌面客户端提供文件同步服务。

以下内容为Go实现的服务端源代码

  • Go实现的服务端核心,同样也分为Seaf API和Http API。同时还包含了Go实现的用户空间文件系统。

  • 启动seafile-server、ccnet-server、seafile-monitor。修复seafile-server和ccnet-server的进程。

以下内容为测试脚本

  • 通过python实现的RPC客户端进行功能测试。

About

notes on seafile-server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published