IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【山大智云】源码分析分工 —— SeafileServer -> 正文阅读

[大数据]【山大智云】源码分析分工 —— SeafileServer

2021SC@SDUSC

项目结构

山大智云项目结构

  • seafile-server:seafile的服务端核心。
  • seahub:seafile的Web前台,使用Django框架开发。
  • seafdav:seafile的WebDav服务。
  • seafevents:用于处理周期事件(包括建索引、杀毒、自动删除等)。
  • seafes:ElasticSearch与seafile结合,对文件内容建立全文索引。
  • seafobj:用于访问seafile数据模型。

分工

我负责seafile-server的分析。以下是我对seafile-server项目的结构分析:

Seafile-Server结构

seafile-server项目结构

以下内容为编译相关

  • autogen.sh

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

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

    在这里插入图片描述

  • configure.ac

    编译配置。

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

  • Makefile.am

    编译规则。

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

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

  • m4

    与autoconf有关。

以下内容为开源相关

以下内容为客户端源代码

  • python

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

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

    • seafile

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

    • seaserv

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

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

  • lib

    库文件。

  • include

    头文件。

  • common

    通用源文件。

  • fuse

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

  • server

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

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

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

  • fileserver

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

以下内容为测试脚本

  • tests

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


由上述结构分析可见,seafile-server的核心代码主要在服务端核心这一部分,即lib,include,common,fuse,server以及fileserver中。此后我将重点分析C语言实现的服务端源代码,即lib,include,common,fuse,server中的内容。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:57:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:11:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码