一、简介: seafile 是由国内团队开发的一个国际化的开源云存储软件项目,目前据说已有10万左右的用户,典型的机构用户包括比利时的皇家自然科学博物馆、德国的 Wuppertal 气候、能源研究所等等。Seafile 同时提供了客户端和服务器端软件免费下载,任何个人或公司都能搭建属于自己的私有文件同步服务。Seafile 的服务器端支持 Linux 、Windows 以及树莓派平台,客户端除了网页版之外,还支持 Mac、Linux、Windows 三个桌面平台以及 Android 和 iOS 两个移动平台。你可以利用局域网里的一台电脑作为服务器,搭建一个仅局域网内部能访问的专有云存储服务,也能将 Seafile 部署到互联网上的诸如阿里云、Linode 或任何 VPS、独立服务器上,实现一个私人的在线云存储服务。 同时,Seafile 支持用户同时使用多个同步服务器,而且能够在不同服务器之间切换。比如,用户可以用公司服务器来同步工作文件,用个人服务器与朋友共享私人文件,两者互不干扰,私密性也可保证。而且,由于 Seafile 是开源的项目,因此相对来说数据的私密性还是有保障的,起码不必担心有什么看不见的后门。具体介绍可以参见seafile官方文档介绍。 下面我们就开始在局域网内搭建一台私有的云存储。 二、安装seafile服务器 1、安装前准备: 请确保服务器 上面安装了以下模块(这款软件是用Django+Python2.7所开发的,所以要保证服务器上面的python版本) python 2.7 python-setuptools python-imaging (这个是python的一个库,网上不好找到,下载地址http://www.pythonware.com/products/pil/) python-mysqldb 2、获取服务端软件包

wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server\_4.3.2\_x86-64.tar.gz

3、解压安装

tar -xf seafile-server_4.3.2_x86-64.tar.gz
mkdir /home/seafile
mv seafile-server-4.3.2 /home/seafile/seafile-server
cd /home/seafile/seafile-server

./setup-seafile-mysql.sh #运行安装脚本并回答预设问题

如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.

./setup-seafile-mysql.sh
Checking python on this machine … #->执行这个脚本之后会去检查之前说的那些依赖包,如果安装包不完整将会提示你某个软件包未安装
Checking python module: setuptools … Done.
Checking python module: python-imaging … Done.
Checking python module: python-mysqldb … Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

https://github.com/haiwen/seafile/wiki

Press ENTER to continue #->这里我们需要一下回车,再继续
-----------------------------------------------------------------

What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] seafile-server #->设置我们的服务器名称

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101 #->服务器的IP
[ This server’s ip or domain ] 192.168.2.108

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default “/home/seafile/seafile-data” ] /data/seafile #->存储的位置我这里选择的是/data/seafile

Which port do you want to use for the seafile fileserver?
[ default “8082” ] #->默认的工作端口

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

#->如果选择1, 你需要提供根密码. 脚本程序会创建数据库和用户。

#->如果选择2, ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1

What is the host of mysql server?
[ default “localhost” ]

What is the port of mysql server?
[ default “3306” ]

What is the password of the mysql root user?
[ root password ] #->这里需要mysql的root权限进行创建库的操作

verifying password of user root … done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default “root” ]

Enter the database name for ccnet-server:
[ default “ccnet-db” ]

Enter the database name for seafile-server:
[ default “seafile-db” ]

Enter the database name for seahub:
[ default “seahub-db” ]

#->以上三个库名都用默认的

以上步骤完成后将会出现一下提示信息,说明我们安装就成功啦 [

seaf](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/seaf.png)
seaf](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/seaf.png)
三、启动seafile服务和seahub网站 1、在/home/seafile/seafile-server目录下执行

#->启动seafile
./seafile.sh start # 启动 Seafile 服务

#->启动seahub
./seahub.sh start # 启动 Seahub 网站 (默认运行在8000端口上)

注意:你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号,就像下面这样 seahub 这个管理账号必须是你自己取注册的任意邮箱地址,登陆管理使用这个地址,我这里用的是gmail. 服务启动后, 打开浏览器并输入这个地址 http://192.168.2.108:8000 web 输入账号密码就会被重定向到登陆页面. 输入你在安装 Seafile 时提供的用户名和密码后,你会进入 Myhome 页面,新建资料库. seafile 至此,seafile私有与存储共享平台已经部署完毕了。 下面我们可以去下载一个客户端安装上 我这里使用的Ubuntu下的客户端 account Screenshot from 2015-09-08 22:08:59 因为之前就把我的库下载到了本地,你可以在本地库添加文件,然后点击同步就会同步到服务器端啦,就像这样(如果你不使用客户端的话,可以使用网页版) Screenshot from 2015-09-08 22:12:08 当然他的客户端不只是在linux(ubuntu) 上面才有哦, 客户端在: 移动端有:Android,Ios 桌面端有:windows、Linux、Mac 服务端在: Windows、Linux、树莓派 任何平台的浏览器。 下面是我手机端的截图,服务器跟手机的wifi是在一个局域网内的 1 2 3 既然说了是团队、企业或者个人使用,那每个人都要有个账号,那我们需要新建一个账号才行,因为我使用的seafile server是社区版,有许多的功能都不能使用,但是我觉得作为一个小团队,或者个人使用再适合不过了。 下面我们创建一个账号,在win上面登陆,必须要让你都服务器连接网络,并且注册使用seafile的用户必须使用email地址作为登陆账号,这个账号必须是存在可登录的email Screenshot from 2015-09-08 22:40:30 Screenshot from 2015-09-08 22:42:41 Screenshot from 2015-09-08 22:45:30 我们只需要将这个资料库下载到本地就可了,添加文件,然后右击“我的资料库”就可以看到同步到服务器了。 然后我们可以在本地资料库中指定某个文件生成一个下载链接,可以分享给我的小伙伴下载。 我看了一下服务器上面的数据存储目录,数据传入到服务器端就类似于Map Reduce这种软件架构将数据切成了很多很多份,然后创建索引保存到数据库,获取数据时拿到索引,最后根据索引重组数据,再返回结果给客户端。 Screenshot from 2015-09-08 23:00:20 上图中0211e*这个目录是用户seafileshare的资料库,文件上传到服务器是它就将一个完整的文件拆散了,在服务端我们找不到一个完整的软件包。这种存储方式跟mogilefs有些类似。 感觉社区版还是有些局限性,但是对于个人,一个团队我个人觉得完全足够啦。 好了如果需要了解更多,可以到官网了解使用:http://www.seafile.com