侧边栏壁纸
  • 累计撰写 372 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

利用阿里云ECS服务器和OSS对象存储器创建个人Cloudreve云盘

Z同学
2022-10-18 / 0 评论 / 2 点赞 / 106 阅读 / 4,156 字
温馨提示:
本文最后更新于 2022-11-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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] 模块下的:WorkingDirectoryExecStart 的参数值,需要根据我们的实际情况做出调整。

模板为: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管理账户,点击管理账户头像,选择:管理面板菜单。
image-1666143130223

在弹出的确定站点URL设置对话框中选择更改。或者忽略都可以。然后在左侧导航栏中,选择存储策略
image-1666143155014

然后执行添加存储策略:
添加存储策略

在弹框中选择:本机存储

image-1666143206512

然后开始配置本机存储策略。

上传路径中的存储目录配置为:oss/Object路径/{uid}/{path}

oss就是我们定义的挂载文件夹名称。(上面实例中挂载名称就是oss所以这里不用改)

而object路径,就是我们OSS存储对象中的文件路径。

例如我要存储在对象存储的 cloud/file/ 文件夹下。那么就可以写为:

oss/cloud/file/{uid}/{path}

因为我的cloudreve目录和oss目录是在同一目录下的,所以我可以直接配置/oss/cloud 进行配置。

如果我们ossfs挂载的路径和cloudreve并不是在同一目录下,那么我们需要写完整的绝对路径。否则会无法同步内容到oss中的哦

然后其他项目不用修改。执行下一步。在直链设置中设置为禁止。

image-1666143232935

最后在上传限制上, 设置为不限制(是否限制,根据自己的要求来,之后仍然可以进行修改的)

image-1666143246550

最后,就是创建一个策略名称,然后进行完成就可以了。

image-1666143255291

最后,在用户组中,给用户添加存储策略,让这个用户上传的内容使用该存储策略就可以了。

image-1666143265308

那么这个用户上传的数据,就会全部在该存储策略关联的数据地址上了。

我们可以试试上传操作了。上传完毕后就可以在oss中看到我们上传的内容资料了(会稍微延迟一会)。

4. 后记

该配置方法,是通过访问ECS服务器资源进行获取OSS对象存储数据的。而内网访问OSS是没有流量费用的。所以我们如果有一个ECS服务器和OSS对象存储器的话。

那么使用该方法可以更高效的利用两者之间的关系哦。

上面只是简单的cloudreve的配置。cloudreve还有很多配置项进行配置例如支持https,修改服务器数据库为Mysql等等

4.1 忘记cloudreve管理员密码

  1. 忘记管理员密码后,可以通过删除cloudreve.db 文件,然后重新执行./cloudreve 会生成新的账户密码。(原有配置账户全丢失了)
  2. 在cloudreve安装目录下执行:./cloudreve --database-script ResetAdminPassword。(不会丢失配置信息,只会重置管理员的密码,新密码会在日志中输出。)

4. 2推广

大家如果想有一个自己的服务器,并搭建自己的云盘。可以通过选购阿里云服务器
阿里云官方ECS云服务器购买地址:
https://www.aliyun.com/product/ecs?scm=20140722.M_5933520.P_144.MO_401-ID_5933520-MID_5933520-CID_20728-ST_3903-V_1&source=5176.11533457&userCode=w5jkvc5z

如果不确定自己是否需求,可以通过试用一个月试试手

2

评论区