1. 介绍
我们如果有一个ECS服务器,并且有比较大的OSS对象存储器。那么可以尝试结合两者搭建一个私人的云盘。
毕竟ECS服务器的存储空间比较小。而OSS空间比较大。
关于服务器购买和对象存储购买。这里就不介绍了。
服务器版本为:CentOS 8.5.2111版本。
2. 操作
下面的所有操作,都需要我们通过Xshell等远程终端软件,访问Linux服务器。然后执行命令操作。
2.1 安装cloudreve
执行命令,下载Cloudreve 3.3版本:(ps:下面路径是阿里云镜像的地址,我们可以自己通过 Cloudreve gitHub)获取最新的版本下载链接。(PS:截止本篇文章写作日期,最新版本为3.5.3版)
[root@iZuf66egabu9wj7z7x4b2yZ ~]# wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz
下载完毕后:通过ls命令 就可以在当前目录下看到我们下载的文件了:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ls
cloudreve_3.3.1_linux_amd64.tar.gz
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
然后,再执行文件解压。当前下载的文件是一个压缩文件:tar -zxvf +文件名称。
root@iZuf66egabu9wj7z7x4b2yZ ~]# tar -zxvf cloudreve_3.3.1_linux_amd64.tar.gz
cloudreve
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
然后就会在当前文件夹下添加一个新的解压文件夹:我们通过ls命令可以看到目录下有两个新文件对象了:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ls
cloudreve cloudreve_3.3.1_linux_amd64.tar.gz
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
执行命令授权:chmod +x ./cloudreve 给解压后的cloudreve授予相应的访问权限。
[root@iZuf66egabu9wj7z7x4b2yZ ~]# chmod +x ./cloudreve
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
授予完毕后,我们就要开始执行运行cloudreve命令了:./cloudreve 。
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ./cloudreve
___ _ _
/ __\\ | ___ _ _ __| |_ __ _____ _____
/ / | |/ _ \\| | | |/ _ | '__/ _ \\ \\ / / _ \\
/ /___| | (_) | |_| | (_| | | | __/\\ V / __/
\\____/|_|\\___/ \\__,_|\\__,_|_| \\___| \\_/ \\___|
V3.3.1 Commit #a1252c8 Pro=false
================================================
[Info] 2022-10-18 20:04:25 初始化数据库连接
[Info] 2022-10-18 20:04:25 开始进行数据库初始化...
...
[Info] 2022-10-18 20:04:26 开始监听 :5212
直到出现了开始监听。就代表我们已经配置完毕了。(如果我们版本不是最新的,还会提示我们最新版本已经到多少了。)
其中输出的内容中:有一个初始管理员账户和密码。我们需要记住了。之后进行配置操作需要管理员账户哦。
然后,我们在浏览器中输入:http://我们服务器的ip地址:5212 就可以访问cloudreve了。通常默认账户都是:admin@cloudreve.org 而密码是随机的字符。所以我们要记录
在这里就安装完毕了。
(如果我们忘记了初始管理员密码,那么我们要在同一级目录下删除掉cloudreve.db,然后在当前目录下执行./cloudreve 重启就可以了)。
我们首次执行启动之后,就会在当前目录下自动创建cloudreve.db 和conf.ini 这两个配置文件。
我们如果要Cloudreve支持https等,需要修改conf.ini配置文件
2.1.1 访问地址
如果我们有申请域名并且绑定了服务器ip地址。那么我们可以通过域名+端口号的形式访问。
如果我们在服务器中还配置安装了nginx服务器,那么我们可以在nginx配置反向代理和二级域名的方式。可以隐藏端口号进行访问。
这个时候让我们在命令行操作界面中,按Ctrl+C 关闭。cloudreve服务就被停止了。
我们在上面主要是验证了cloudreve的安装和启动是否正常。(通常没有可能会出现问题,就是一个下载,解压,运行的过程。)
2.1.2 配置开机启动
我们通过./cloudreve 可以直接启动,但是终端关闭后,就会关闭服务了。我们需要配置开机启动。
这种开机启动配置方法,一直支持到cloudreve最新版本。
首先,创建一个cloudreve.service 配置文件:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# vim /etc/systemd/system/cloudreve.service
在打开的新文件中,配置以下格式的数据:
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target
[Service]
WorkingDirectory=/root
ExecStart=/root/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target
然后授予可执行权利:chmod +x /etc/systemd/system/cloudreve.service 并更新配置:
[root@iZuf66egabu9wj7z7x4b2yZ ~]#chmod +x /etc/systemd/system/cloudreve.service
[root@iZuf66egabu9wj7z7x4b2yZ ~]# systemctl daemon-reload
注意:其中的两个字段,[Service] 模块下的:WorkingDirectory 和ExecStart 的参数值,需要根据我们的实际情况做出调整。
模板为:PATH_TO_CLOUDREVE 这个变量就是我们的cloudreve的解压之后的目录路径
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
上面,我是直接在root目录下解压并执行的cloudreve。所以我的实例文档中配置的就是root文件夹了
剩下的,就可以执行服务器的各种配置启动了:(ps:如果是账户拥有root权限,就可以省略sudo字段)
# 启动服务
sudo systemctl start cloudreve
# 设置开机启动
sudo systemctl enable cloudreve
# 停止服务
sudo systemctl stop cloudreve
# 重启服务
sudo systemctl restart cloudreve
# 查看状态
sudo systemctl status cloudreve
[root@iZuf66egabu9wj7z7x4b2yZ ~]# vim /etc/systemd/system/cloudreve.service
[root@iZuf66egabu9wj7z7x4b2yZ ~]# chmod +x /etc/systemd/system/cloudreve.service
[root@iZuf66egabu9wj7z7x4b2yZ ~]# systemctl daemon-reload
[root@iZuf66egabu9wj7z7x4b2yZ ~]# systemctl start cloudreve
到这里就启动服务了,其实也够我们使用的了。但是如果要能够开机自动启动。就需要配置:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# systemctl enable cloudreve
到这里就配置完了cloudreve了。
下面就要配置ossfs了。配置完毕后,再配置oss路径到cloudrever之中就可以了。
2.2 安装ossfs
ossfs可以让我们在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中。让我们能够像操作本地文件一样,操作OSS的对象。(PS:我们的云盘内容是存储在oss之中的,所以这一步是必须的)
首先:下载ossfs安装包:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos8.0_x86_64.rpm
下载完毕后在当前目录下就会出现一个ossfs_1.80.6_centos8.0_x86_64.rpm 文件对象了。
通过ls命令可以查询:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ls
cloudreve cloudreve_3.3.1_linux_amd64.tar.gz cloudreve.db conf.ini ossfs_1.80.6_centos8.0_x86_64.rpm
然后我们如果在安装之前,需要更新一下系统的yum源。避免等会安装过程中出现依赖库找不到的问题。
2.2.1 更新yum源
首先:删除过期的repo文件:
root@iZuf66egabu9wj7z7x4b2yZ ~]# rm -f /etc/yum.repos.d/*
然后:挂载最新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@iZuf66egabu9wj7z7x4b2yZ ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
然后刷新yum 生成缓存
t@iZuf66egabu9wj7z7x4b2yZ ~]# yum clean all && yum makecache
2.2.2 安装
刷新完毕后,我们就可以开始安装了。(不执行上面的更新yum源也是可以的)
[root@iZuf66egabu9wj7z7x4b2yZ ~]# yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm
当出现Complete!的提示时,就代表安装完毕了。 参考实例:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm
Last metadata expiration check: 0:01:40 ago on Tue 18 Oct 2022 04:30:06 PM CST.
Dependencies resolved.
============================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================
Installing:
ossfs x86_64 1.80.6-1 @commandline 2.1 M
Installing dependencies:
fuse x86_64 2.9.7-12.el8 base 82 k
fuse-common x86_64 3.2.1-12.el8 base 21 k
Transaction Summary
============================================================================================================================================
Install 3 Packages
Total size: 2.2 M
Total download size: 104 k
Installed size: 8.9 M
Downloading Packages:
(1/2): fuse-common-3.2.1-12.el8.x86_64.rpm 85 kB/s | 21 kB 00:00
(2/2): fuse-2.9.7-12.el8.x86_64.rpm 89 kB/s | 82 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------
Total 111 kB/s | 104 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : fuse-common-3.2.1-12.el8.x86_64 1/3
Installing : fuse-2.9.7-12.el8.x86_64 2/3
Installing : ossfs-1.80.6-1.x86_64 3/3
Running scriptlet: ossfs-1.80.6-1.x86_64 3/3
Verifying : fuse-2.9.7-12.el8.x86_64 1/3
Verifying : fuse-common-3.2.1-12.el8.x86_64 2/3
Verifying : ossfs-1.80.6-1.x86_64 3/3
Installed:
fuse-2.9.7-12.el8.x86_64 fuse-common-3.2.1-12.el8.x86_64 ossfs-1.80.6-1.x86_64
Complete!
2.2.3 配置ossfs
配置账户访问信息,将Bucket名称以及具有此Bucket访问权限的AccessKey ID 和AccessKey Secret信息,存储到/etc/passwd-ossfs文件中。(该文件是不存在的,我们的本次操作就是创建一个该文件)
方法一:echo <BucketName>:<AccessKeyId>:<AccessKeySecret> >/etc/password-ossfs
[root@iZuf66egabu9wj7z7x4b2yZ ~]# echo zinyan:LTAI5tKJAxZ3b9wdQZJGMHYm:NI88ivg6ZeFj5Td3IQj2j1v9e4z5o7 > /etc/passwd-ossfs
方法二:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# vim /etc/passwd-ossfs
然后在打开的空文件中输入: <BucketName>:<AccessKeyId>:<AccessKeySecret>
zinyan:LTAI5tKJAxZ3b9wdQZJGMHYm:NI88ivg6ZeFj5Td3IQj2j1v9e4z5o7
其中bucketName 比较好理解,我们自己创建bucket的时候就会创建一个名称了。而accessKey和Secret,就需要我们在阿里云的AccessKey管理菜单中创建完毕,然后在OSS对象存储中给该用户进行授权。否则将会没有操作OSS的权限哦。
- BucketName:阿里云OSS控制台中创建的bucket名称。
- AccessKeyId:具有此Bucket访问权限的AccessKey ID。
- AccessKeySecret:具有此Bucket访问权限的AccessKey Secret。
配置完毕访问配置文件后,执行授权操作。
[root@iZuf66egabu9wj7z7x4b2yZ ~]# chmod 640 /etc/passwd-ossfs
到这里,我们也只是将访问对象存储OSS的用户名和密码等配置完毕了。
2.2.4 挂载OSS
当我们配置完毕后,就要进行挂载操作了。也就是说将OSS关联到本地的某个文件夹下。通过mkdir命令创建一个文件夹。
实例:我创建了一个oss文件夹。(该文件夹名称可以随意定,并不一定必须叫做oss哦)
[root@iZuf66egabu9wj7z7x4b2yZ ~]# mkdir oss
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ls
cloudreve cloudreve_3.3.1_linux_amd64.tar.gz cloudreve.db conf.ini oss ossfs_1.80.6_centos8.0_x86_64.rpm
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
创建完毕文件夹后,就要咨询挂载操作了。通过:ossfs BucketName mountfolder -o url=Endpoint
- BucketName:阿里云OSS控制台中创建的bucket名称。
- mountfolder:上一步创建的挂载文件夹(也就是我们创建的oss文件夹)。
- Endpoint:OSS的ECS 的经典网络访问(内网)的Endpoint。
实例:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# ossfs zinyan oss -o url=oss-cn-beijing-internal.aliyuncs.com
其中BucketName 和mountfolder都比较好理解。就是后面的url后面需要的Endpoint。
在我们创建的OSS对象的概述菜单下,有一个访问域名的配置项:
实例如下:
Endpoint(地域节点) |
Bucket 域名 |
HTTPS |
|
外网访问 |
oss-cn-beijing.aliyuncs.com |
zinyan.oss-cn-beijing.aliyuncs.com |
支持 |
ECS 的经典网络访问(内网) |
oss-cn-beijing-internal.aliyuncs.com |
zinyan.oss-cn-beijing-internal.aliyuncs.com |
支持 |
ECS 的 VPC 网络访问(内网) |
oss-cn-beijing-internal.aliyuncs.com |
zinyan.oss-cn-beijing-internal.aliyuncs.com |
支持 |
传输加速域名(全地域上传下载加速) |
未开启 |
开启 |
支持 |
HDFS服务 |
未开启 |
未开启 |
|
可以填写前面的oss-cn-beijing-internal.aliyuncs.com 也可以填写后面我们映射了域名的zinyan.oss-cn-beijing-internal.aliyuncs.com 。
注意:内网映射访问,ECS访问OSS是没有流量费的,是免费的哦。
配置完毕后,可以通过df-h 检测挂载是否成功:
[root@iZuf66egabu9wj7z7x4b2yZ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 388M 0 388M 0% /dev
tmpfs 405M 0 405M 0% /dev/shm
tmpfs 405M 452K 404M 1% /run
tmpfs 405M 0 405M 0% /sys/fs/cgroup
/dev/vda3 40G 3.3G 37G 9% /
/dev/vda2 100M 7.3M 93M 8% /boot/efi
tmpfs 81M 0 81M 0% /run/user/0
ossfs 256T 0 256T 0% /root/oss
[root@iZuf66egabu9wj7z7x4b2yZ ~]#
其中出现了 ossfs 就代表我们已经挂载成功了,挂载到了root的oss文件夹下了。
2.2.5 配置开机启动
挂载完毕后,我们就需要配置开机启动了。
[root@iZuf66egabu9wj7z7x4b2yZ ~]# vim /etc/init.d/ossfs
在打开的新文件中,配置以下格式的数据;ossfs BucketName mountfolder -o url=Endpoint -oallow_other
效果如下:(注意,#! /bin/bash这串代码比较重要,不配置的话,chkconfig无法生效哦)
#! /bin/bash
#
# ossfs Automount Aliyun OSS Bucket in the specified direcotry.
#
# chkconfig: 2345 90 10
# description: Activates/Deactivates ossfs configured to start at boot time.
ossfs zinyan oss -o url=oss-cn-beijing-internal.aliyuncs.com -oallow_other
相较于上面的挂载指令,多添加了一个 -oallow_other 选项而已。
然后再赋予ossfs脚本可执行权限,并将该脚本作为服务,执行开机自动启动。
[root@iZuf66egabu9wj7z7x4b2yZ ~]# chmod a+x /etc/init.d/ossfs
[root@iZuf66egabu9wj7z7x4b2yZ ~]# chkconfig ossfs on
3. 配置cloudrever
当我们cloudrever和oss的依赖都配置完毕后。登录cloudrever管理账户,点击管理账户头像,选择:管理面板菜单。
在弹出的确定站点URL设置对话框中选择更改。或者忽略都可以。然后在左侧导航栏中,选择存储策略
然后执行添加存储策略:
在弹框中选择:本机存储
然后开始配置本机存储策略。
上传路径中的存储目录配置为:oss/Object路径/{uid}/{path}
oss就是我们定义的挂载文件夹名称。(上面实例中挂载名称就是oss所以这里不用改)
而object路径,就是我们OSS存储对象中的文件路径。
例如我要存储在对象存储的 cloud/file/ 文件夹下。那么就可以写为:
oss/cloud/file/{uid}/{path}
因为我的cloudreve目录和oss目录是在同一目录下的,所以我可以直接配置/oss/cloud 进行配置。
如果我们ossfs挂载的路径和cloudreve并不是在同一目录下,那么我们需要写完整的绝对路径。否则会无法同步内容到oss中的哦
然后其他项目不用修改。执行下一步。在直链设置中设置为禁止。
最后在上传限制上, 设置为不限制(是否限制,根据自己的要求来,之后仍然可以进行修改的)
最后,就是创建一个策略名称,然后进行完成就可以了。
最后,在用户组中,给用户添加存储策略,让这个用户上传的内容使用该存储策略就可以了。
那么这个用户上传的数据,就会全部在该存储策略关联的数据地址上了。
我们可以试试上传操作了。上传完毕后就可以在oss中看到我们上传的内容资料了(会稍微延迟一会)。
4. 后记
该配置方法,是通过访问ECS服务器资源进行获取OSS对象存储数据的。而内网访问OSS是没有流量费用的。所以我们如果有一个ECS服务器和OSS对象存储器的话。
那么使用该方法可以更高效的利用两者之间的关系哦。
上面只是简单的cloudreve的配置。cloudreve还有很多配置项进行配置例如支持https,修改服务器数据库为Mysql等等
4.1 忘记cloudreve管理员密码
- 忘记管理员密码后,可以通过删除cloudreve.db 文件,然后重新执行./cloudreve 会生成新的账户密码。(原有配置账户全丢失了)
- 在cloudreve安装目录下执行:./cloudreve –database-script ResetAdminPassword。(不会丢失配置信息,只会重置管理员的密码,新密码会在日志中输出。)
评论前必须登录!
注册