随着现在手机软件原来越大,手机像素越来越高。16GB的iPhone存储容量感人,安装不了几个APP,要是存上一些宝贵的照片,存储空间根本不够用,甚至一些64GB的手机用户也感觉越来越力不从心了。而iCloud也仅仅提供5GB的存储空间,对于我们这些16GB的iPhone用户来说简直是杯水车薪。而国内各大免费云盘也都纷纷停止服务,剩下的一下网盘也都限速限的厉害,再加上安全考虑,也就不在考虑范围内了。
本文就向大家介绍一款私有云盘软件——Seafile,以及如何通过这款私有云盘软件打造自己的私有云盘,并实现在网络环境下手机照片实时地自动同步到自己的电脑上,从而释放你的手机存储空间。
Seafile服务端的安装
Seafile简介
Seafile,是一套中国国产的开源、专业、可靠的云存储项目管理软件,解决文件集中存储、共享和跨平台访问等问题。正式发布于2012年10月。除了一般网盘所提供的云存储以及共享功能外,Seafile还提供消息通信、群组讨论等辅助功能,帮助员工更好的围绕文件展开协同工作,已有10多万用户使用。
目前,Seafile提供服务器端包括有Linux,树莓派端和Windows端的,客户端也支持Windows、Mac和Linux等桌面端,移动端也有Android和iPhone两大主流平台。
下载页面:
https://www.seafile.com/download/
安装Seafile服务器端
首先我们需要一台平时很少关机的PC作为服务器端,我在实验室有台台式机平时常开,因此比较合适作为Seafile的服务器端。由于这台台式机的操作系统是Windows的,所以我们下载与其对应的Windows服务器端的Seafile。对于有自己的云服务器的用户,当然也可以将其部署到云服务器上,若云服务器的系统为Linux,请下载Linux版本的Seafile服务器端,部署方法请移步Seafile官网的《Seafile服务器手册中文版》。
Windows服务器端的Seafile部署可以参考Windows下部署Seafile服务器,本文也将我的安装过程简单描述(参考Windows下部署Seafile服务器):
安装 Python 2.7.11
32 位版本
下载并安装 python 2.7.11 32 位版本
安装过程中请选择将python.exe
添加到环境变量。
注意:一定要使用 Python 2.7.11
32 位版本。64 位版本或不是 2.7.11 的版本不能工作。
下载并解压 Seafile 服务器
1.获取 Seafile 服务器的最新版本。
2.为 Seafile 服务器程序创建一个新的文件夹,比如C:\SeafileProgram\
。请记住此文件夹的位置,我们将在以后用到它。
3.将seafile-server_5.0.3_win32.tar.gz解压到C:\SeafileProgram\
目录下。
现在,您的目录结构应该像如下这样:
启动与初始化
1.启动 Seafile 服务器
在C:\SeafileProgram\seafile-server-5.0.3\
文件夹下,找到run.bat
文件并双击,以启动 Seafile 服务器。此时,您应该注意到 Seafile 服务器的图标已经出现在您的系统托盘中。
2.选择一个磁盘作为 Seafile 服务器数据的存储位置
现在,您可以在弹出的对话框中选择一个磁盘,以便存储 Seafile 服务器的数据:
- 请确保选择的磁盘拥有足够的剩余空间;
- 点击确认按钮后, Seafile 将会在您选择的磁盘下为您创建一个名为
seafile-server
的文件夹。这个文件夹就是 Seafile 服务器的数据文件夹。如果您选择D盘,那么数据文件夹为D:\seafile-server
。
3.添加管理员帐号
右击 Seafile 服务器的系统托盘图标, 选择“添加管理员帐号”选项。在弹出的对话框中输入您的管理员用户名和密码。
如果操作成功, Seafile 服务器托盘图标处会弹出一个气泡提示您”添加 Seahub 管理员账户成功”。
4.配置 Seafile 服务器
初始化服务器之后,还需配置以下选项,否则不能进行文件的上传下载:
- 访问服务器的 Web 界面 (打开
http://<您的 IP 地址>:8000
),用管理员账号登录;
- 点击左上角的扳手图标,进入管理员界面,在进入”设置”标签;
- 将SERVICE_URL的值配置成
http://<您的 IP 地址>:8000
。比如您的 Windows 服务器地址为192.168.48.128
, 那么配置成SERVICE_URL = http://192.168.48.128:8000
; - 将FILE_SERVER_ROOT的值配置成
http://<您的 IP 地址>:8082
。比如您的 Windows 服务器地址为192.168.48.128
, 那么配置成SERVICE_URL = http://192.168.48.128:8082
。
内网穿透
通过以上的操作,我们就可以通过地址http://192.168.48.128:8000
访问我们的Seafile云盘了,但是这种访问仅限于本机或者局域网以内。由于该IP地址非公网IP,因此当我们处在非同一局域网的环境时,我们将无法访问到自己的Seafile云盘了。所以我们还需要一个内网穿透的软件来做映射(当然,在自己的云服务器上部署Seafile时,由于云服务器一般都有固定的公网IP,可以跳过这一步了)。这里向大家介绍的是ngrok。
使用Ngrok进行内网穿透
首先前往ngrok的官方网站下载页面下载对应版本的ngrok。
运行ngrok.exe
,输入命令ngrok http 8000
,结果如下:
通过结果中返回的两个域名,我们即可在外网访问在自己电脑上部署的seafile了:
使用Sunny-Ngrok进行内网穿透
通过前面的Ngrok的设置之后,我们已经实现在外网通过Ngrok提供的域名访问Seafile私有云。但是Ngrok生成的域名前缀是随机的,非常不好记,同时逼格也不够高。这里我们就介绍一种可以自定义域名的方法:使用Sunny-Ngrok。
Sunny-Ngrok是基于Ngrok的一款内网转发软件,提供免费内网穿透服务,免费服务器支持绑定自定义域名。下面简单介绍如何使用Sunn-Ngrok实现自定义域名。
注册
前往Sunny-Ngrok官网进行注册:https://ngrok.cc/
开通隧道
登陆Sunny-Ngrok并开通免费隧道。
开通设置如下:
其中隧道名称填写映射的应用名称,自己定义即可;前置域名为将来访问Seafile时候的域名的前缀,如上图,填写seafiletest
后,将来访问的域名就是http://seafiletest.ngrok.cc
;本地端口为映射的端口号,对于本文中的Seafile而言,填写127.0.0.1:8000
即可,映射其他应用需填写其对应的端口号。
开通隧道之后,在隧道管理中可以查看到隧道id,这个隧道id将在后面用到。
下载并运行Sunny-Ngrok客户端
在Sunny-Ngrok下载客户端,解压客户端,运行Sunny-Ngrok启动工具.bat
,输入隧道id。
此时就已经可以通过域名http://seafiletest.ngrok.cc
访问自己电脑上的seafile服务了。在我们访问的过程中,Sunny-Ngrok会不断刷新每次请求的状态码:
到这里有人可能会问了,不是说自定义域名嘛,你这里只是自定义了一个二级域名而已,我们能自定义的部分只是这个域名的前缀部分,一级域名部分的ngrok.cc
并不能修改啊。确实,这样让人一眼就看出来了,这是通过Sunny-Ngrok做了转发的。那么,下面我就将介绍,如何绑定自己的域名,当然这前提是你得有个自己的域名。
绑定域名CNAME解析
我们这里尝试将域名seafile.jiangyayu.cn
解析到我们本地计算机的Seafile服务。
首先打开腾讯的云解析平台(其他渠道购买的域名请到对应的域名解析平台),添加记录:
记录类型:CNAME
主机记录:seafile
记录值:server.ngrok.cc
然后我们回到隧道管理页面,打开编辑,在自定义域名中填入刚刚绑定的域名:seafile.jiangyayu.cn
,并点击确认保存。
重新运行Sunny-Ngrok启动工具.bat
工具,此时我们已经可以通过自定义的域名seafile.jiangyayu.cn
来访问我们本地计算机上的Seafile服务了。
手机照片自动同步
说了这么多搭建Seafile私有云的东西,最终目的就是为了能够将手机里面的照片随时随地同步到我们本地的计算机,然后释放被大量照片占据的手机存储空间。下面就是手机照片自动同步的关键了:
安装iOS版的Seafile客户端
在APP Store搜索下载Seafile Pro客户端,安装客户端,打开作如下设置:
同步完之后,即可删除手机相册中的照片以释放手机存储空间。如下图所示,当需要查看照片时候,直接在资料库中进行浏览就行,在WiFi环境下,可以不用考虑GPRS流量的问题。即使在没有WiFi环境下需要查看某一两张照片也是能够接受的。
查看同步的照片
由于Seafile对文件的加密,同步到本地计算机的照片被加密后存储在Seafile的数据库中的,是不能直接看到的。我们可以在本地计算机通过访问:http://localhost:8000 进行访问。这里不通过地址http://seafile.jiangyayu.cn
进行访问是因为localhost相当于本机直接访问,不需要通过网络传输,速度会更快。
当然我们也可以下载Seafile的Windows客户端进行访问,这时候服务器地址也应当选择http://localhost:8000
比较合适。
总结
本文以手机照片同步到本地计算机为例,简单的介绍了如何在自己的电脑上部署Seafile服务器环境;然后通过Ngrok进行数据转发,实现外网的映射,让在网络环境下可以很好的访问到服务;最后通过iOS端的Seafile客户端,实现相册的同步。
这里介绍的仅仅是Seafile的一种简单的用法而已,除此之外,Seafile还可以作为我们的私有云盘进行使用。能够将文件组织成资料库,每个资料库可以选择性的同步到任意的设备,其权限管理、版本控制等功能均给我们的工作带来极大的方便。大家如果感兴趣可以继续探索。