文件是分隔后存储的。根据查询seafile官网显示,seafile碎片存储缺点为文件是分隔后存储的。Seafile是国内团队开发、国际领先的开源企业云存储软件,为企业提供私有云环境下的网盘解决方案,满足文件集中管理、多终端访问、共享协作等需求。
一.下载最新版本seafile。
专业版需要到英文页面注册下载,3个用户免费使用,个人使用还是不用钱的:
https://www.seafile.com/en/product/private_server/。
注册登录之后在Downloads页面点击下载页面链接,然后选择对应的系统版本文件下载就行。
可以用宝塔的远程下载,然后解压出来,可以在网站目录下创建一个seafile文件夹,跟我保持一致避免其他我没有遇到的问题。
二.将需要的软件依赖先安装好
连接到服务器,安装软件依赖
9.0版本的命令下面这个
apt-get update
apt-get install python3 python3-setuptools python3-pip python3-ldap libmysqlclient-dev -y。
pip3 install --timeout=3600 django==3.2.* future mysqlclient pymysql Pillow pylibmc \ 。
captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha \。
pycryptodome==3.12.0 cffi==1.14.0。
这里要注意一下有个坑,执行最后一个命令的时候很可能会报错:
可以通过以下命令解决:
apt-get install libmemcached-dev zlib1g-dev。
三.开始部署seafile
1.首先进去解压出来的文件夹,输入命令开始部署:
./setup-seafile-mysql.sh。
2.回车确认后就需要输入信息了。
①输入名字,自己定义
②输入ip或者域名,输入127.0.0.1。
③端口,直接回车
④选择创建数据库或者连接已有的数据库,输入 1 回车。
⑤MySQL服务器,直接回车
⑥MySQL端口,直接回车
⑦MySQL root用户密码,宝塔的话直接去数据库页面找就行,复制输入然后回车(密码是看不到输入的)
⑧输入数据库用户名,自己定义
⑨输入数据库密码,自己定义
⑩后面三个创建数据库都是直接回车就行。
这里可能会有一个报错,之后把最后一个数据库改个名字就行,例如:seahub-db 改为 seahubs-db 即可,记住这里报错了要先把seafile目录下已经创建的其他文件夹删除,只保留解压出来的seafile-server-9.0.4文件夹。
最后会让你确认输入信息,回车就开始安装了。
最后看到这个信息就是安装完成了。
四.使用nginx反代并使用ssl。
1.先把域名解析到服务器,然后在宝塔添加网站。
2.先宝塔申请一下ssl证书,开启反代之后申请不了的,可以先暂停反代,我这里就先申请了。
3.在网站设置中打开反向代理
4.到这里还没结束,因为我们现在只是反代了面板,上传下载的端口是没有的,现在还没办法使用,我们还要在网站配置文件中添加下面的代码。
location /seafhttp {。
rewrite ^/seafhttp(.*)$ $1 break;。
proxy_pass http://127.0.0.1:8082;。
client_max_body_size 0;。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;。
proxy_connect_timeout 36000s;。
proxy_read_timeout 36000s;。
proxy_send_timeout 36000s;。
send_timeout 36000s;。
#优化上传大于4g文件。
proxy_request_buffering off;。
}
5.最后启动一下就可以访问了
./seafile.sh start。
./seahub.sh start。
你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号,按提示输入邮箱跟密码就行。
五.修改后台设置
这时候也是不能上传下载的,要后台设置正确的地址信息,改成自己的域名就行了,现在就可以正常使用了。
六.对接contabo对象存储。
首先创建三个存储桶(Bucket),分别为:my-commit-objects ,my-fs-objects ,my-block-objects。
然后修改seafile/conf/seafile.conf,添加以下代码,key_id和key自行在对象存储控制台获取。
[commit_object_backend]。
name = s3
bucket = my-commit-objects。
key_id = your-key-id。
key = your-secret-key。
host = usc1.contabostorage.com:80。
path_style_request = true。
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100。
[fs_object_backend]。
name = s3
bucket = my-fs-objects。
key_id = your-key-id。
key = your-secret-key。
host = usc1.contabostorage.com:80。
path_style_request = true。
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100。
[block_backend]。
name = s3
bucket = my-block-objects。
key_id = your-key-id。
key = your-secret-key。
host = usc1.contabostorage.com:80。
path_style_request = true。
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100。
保存后重启seafile服务
./seafile.sh start。
这里要注意一点:由于seafile的存储管理逻辑和存储模式,删除的资料库依然留存在存储底层,这就导致了我们删除的文件依然会占用空间,所以需要我们在删除资料库之后,在管理员的后台彻底删除资料库之后,再通过命令清除无效的数据块才能清除占用的空间。
然后在seafile/seafile-pro-server-latest目录下执行。
./seaf-gc.sh -r。
更精细的命令可以参阅官方的文档:https://cloud.seafile.com/published/seafile-manual-cn/maintain/seafile_gc.md。
可选项
1.头像加载失败
连接到服务器运行以下命令
rm -rf /tmp/seahub_cache/*。
2.使用memcached提升性能。
apt-get install memcached libmemcached-dev -y 。
pip3 install --timeout=3600 pylibmc django-pylibmc 。
systemctl enable --now memcached。
然后在 seafile/conf/seahub_settings.py 中添加。
CACHES = {
'default': {。
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',。
'LOCATION': '127.0.0.1:11211',。
},
'locmem': {。
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',。
},
COMPRESS_CACHE_BACKEND = 'locmem'。
最后重启 Seahub 以使更改生效:
./seahub.sh restart。
如果更改没有生效,请删除seahub_setting.pyc缓存文件. 位置在seafile/conf/__pycache__目录下。
(这里说一句,我这里memcached是之前其他网站使用宝塔安装的,所以不知道通过命令安装的话会遇到什么问题,不过应该大概可能没啥问题吧0.0)
在企业环境中,很多用户习惯使用windows共享(网络驱动器)来访问文件。这种方式可以直观地访问服务器上的文件,而且完全不占用本地电脑空间。虽然这种方式对用户来说是最直观易用的,但是windows共享缺乏现代的云存储所具有的一些特性。一方面,windows共享在离线的状态下无法使用;另一方面,也没有很好的手段在网页和移动设备上访问。另外,windows共享的协议在广域网上的性能也不好。
SeaDrive解决了传统产品存在的问题,完全可以替代Windows共享和传统的同步客户端。下面我们来看一下SeaDrive如何使用。
安装设置Seafile帐户后,用户电脑Windows资源管理器会出现Seafile虚拟驱动器SeaDrive(默认使用 ’S:’ 作为盘符,用户可以选择其他盘符)。SeaDrive会从Seafile服务器获取文件列表,并将其缓存在本地磁盘上。因为没有文件内容下载的延迟,用户可以即时看到所有库和文件列表。
drive
由于SeaDrive是通过操作系统内核驱动的方式来实现虚拟磁盘的,所以可以兼容所有的windows程序。在技术上,SeaDrive具有几个优势:
资料库和文件目录列表完全缓存在本地。因此即使电脑没有联网,也能正常查看资料库和目录。
系统在用户访问文件的时候自动获取文件内容,实现了文件的按需下载,无需同步所有文件。
使用智能缓存算法,把最近访问过的文件缓存在本地(已缓存的文件会打上绿色的勾,见上图)。这不但降低了访问文件的延迟,还能支持不联网的情况下查看最近的文件。系统会定期清理缓存,控制本地磁盘使用量。
对文件的修改先写入本地缓存,再上传到服务器,降低修改操作的延迟。
由于其优化特性,SeaDrive在某些应用场景下更有优势:
本地磁盘空间小
需要上传海量数据
保护数据安全。用户只能通过Seafile服务器访问文件,本地缓存文件注销时自动删除,未来版本计划虚拟驱动器也将加密。用户无需再担心电脑丢失后数据泄漏。
当然,我们也在持续地改进挂载盘客户端,加入更多的新功能。比如在后续版本中我们还会允许用户指定某些目录始终缓存在本地,方便离线访问。Linux 和 Mac 客户端也即将发布。大家可以持续关注我们的更新。
下载并安装 python 2.7.4 ,注意不是越新越好,一定要2.7版本的,3.0的不行因为改了很多东西;
将 python2.7 的安装路径添加到系统的环境变量中 (PATH 变量)。比如:如果您将 python 2.7.4 安装在C:\Python27路径下,那么就将C:\Python27添加到环境变量中。注意要用;来分隔路径。
到Seafile官网,下载 Seafile 服务器版的最新版本。
为 Seafile 服务器程序创建一个新的文件夹,比如C:\Seafile\。然后将下载的服务器版文件放到目录中,并解压缩到当前目录,最后得到:C:\Seafile\seafile-server-3.4.0这样的目录结构。
打开C:\Seafile\seafile-server-3.4.0目录,找到run.bat文件,建立桌面快捷方式。然后在桌面打开,启动 Seafile 服务器。此时,您应该注意到 Seafile 服务器的图标已经出现在您的系统托盘中。
现在,您可以在弹出的对话框中选择一个磁盘,以便存储 Seafile 服务器的数据:
请确保选择的磁盘拥有足够的剩余空间点击确认按钮后,Seafile 将会在您选择的磁盘下为您创建一个名为seafile-server的文件夹。这个文件夹就是 Seafile 服务器的数据文件夹。如果您选择D盘,那么数据文件夹为D:\seafile-server。
右击 Seafile 服务器的系统托盘图标, 选择"添加管理员帐号"选项。在弹出的对话框中输入您的管理员用户名和密码。如果操作成功, Seafile 服务器托盘图标处会弹出一个气泡提示您"添加 Seahub 管理员账户成功"。
初始化服务器之后,还需配置以下选项:右击 Seafile 托盘图标,选择"打开 seafile-server 文件夹"选项。您的 seafile-server 数据文件夹将会打开。编辑ccnet/ccnet.conf文件。在ccnet.conf文件中更改以下两行:
NAME = 你的服务器名称
SERVICE_URL = 你的服务器IP地址:8000。
编辑完成后,右击 Seafile 服务器托盘图标,选择"重启 Seafile Server"选项以重启 Seafile 服务器。
打开您的浏览器,访问 http://127.0.0.1:8000 网址。用您的管理员账户登录, 如果成功登录,那么说明您的 Seafile 服务器安装成功了。