运维人

seafile-个人/团队/公司专属私有文件同步服务 (云存储网盘)

一、简介:

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

三、启动seafile服务和seahub网站

1、在/home/seafile/seafile-server目录下执行

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

#->启动seahub
./seahub.sh start <port>  # 启动 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

    分享到:
码字很辛苦,转载请注明来自运维人《seafile-个人/团队/公司专属私有文件同步服务 (云存储网盘)》

评论

  1. 贤东 #1

    🙁 不错哟小伙子

    回复
    2015-10-3