1。介绍 我们如果有一个ECS服务器,并且有比较大的OSS对象存储器。那么可以尝试结合两者搭建一个私人的云盘。 毕竟ECS服务器的存储空间比较小。而OSS空间比较大。 关于服务器购买和对象存储购买。这里就不介绍了。 服务器版本为:CentOS8。5。2111版本。2。操作 下面的所有操作,都需要我们通过Xshell等远程终端软件,访问Linux服务器。然后执行命令操作。2。1安装cloudreve 执行命令,下载Cloudreve3。3版本:(ps:下面路径是阿里云镜像的地址,我们可以自己通过CloudrevegitHub)获取最新的版本下载链接。(PS:截止本篇文章写作日期,最新版本为3。5。3版)〔rootiZuf66egabu9wj7z7x4b2yZ〕wgethttps:labfileapp。osscnhangzhou。aliyuncs。comcloudreve3。3。1linuxamd64。tar。gz 下载完毕后:通过ls命令就可以在当前目录下看到我们下载的文件了:〔rootiZuf66egabu9wj7z7x4b2yZ〕lscloudreve3。3。1linuxamd64。tar。gz〔rootiZuf66egabu9wj7z7x4b2yZ〕 然后,再执行文件解压。当前下载的文件是一个压缩文件:tarzxvf文件名称。rootiZuf66egabu9wj7z7x4b2yZ〕tarzxvfcloudreve3。3。1linuxamd64。tar。gzcloudreve〔rootiZuf66egabu9wj7z7x4b2yZ〕 然后就会在当前文件夹下添加一个新的解压文件夹:我们通过ls命令可以看到目录下有两个新文件对象了:〔rootiZuf66egabu9wj7z7x4b2yZ〕lscloudrevecloudreve3。3。1linuxamd64。tar。gz〔rootiZuf66egabu9wj7z7x4b2yZ〕 执行命令授权:chmodx。cloudreve给解压后的cloudreve授予相应的访问权限。〔rootiZuf66egabu9wj7z7x4b2yZ〕chmodx。cloudreve〔rootiZuf66egabu9wj7z7x4b2yZ〕 授予完毕后,我们就要开始执行运行cloudreve命令了:。cloudreve。〔rootiZuf66egabu9wj7z7x4b2yZ〕。cloudreve()(V,,V3。3。1Commita1252c8Profalse〔Info〕2022101820:04:25初始化数据库连接〔Info〕2022101820:04:25开始进行数据库初始化。。。。。。〔Info〕2022101820:04:26开始监听:5212 直到出现了开始监听。就代表我们已经配置完毕了。(如果我们版本不是最新的,还会提示我们最新版本已经到多少了。) 其中输出的内容中:有一个初始管理员账户和密码。我们需要记住了。之后进行配置操作需要管理员账户哦。 然后,我们在浏览器中输入:http:我们服务器的ip地址:5212就可以访问cloudreve了。通常默认账户都是:admincloudreve。org而密码是随机的字符。所以我们要记录 在这里就安装完毕了。 (如果我们忘记了初始管理员密码,那么我们要在同一级目录下删除掉cloudreve。db,然后在当前目录下执行。cloudreve重启就可以了)。我们首次执行启动之后,就会在当前目录下自动创建cloudreve。db和conf。ini这两个配置文件。 我们如果要Cloudreve支持https等,需要修改conf。ini配置文件2。1。1访问地址 如果我们有申请域名并且绑定了服务器ip地址。那么我们可以通过域名端口号的形式访问。 如果我们在服务器中还配置安装了nginx服务器,那么我们可以在nginx配置反向代理和二级域名的方式。可以隐藏端口号进行访问。 这个时候让我们在命令行操作界面中,按CtrlC关闭。cloudreve服务就被停止了。 我们在上面主要是验证了cloudreve的安装和启动是否正常。(通常没有可能会出现问题,就是一个下载,解压,运行的过程。)2。1。2配置开机启动 我们通过。cloudreve可以直接启动,但是终端关闭后,就会关闭服务了。我们需要配置开机启动。 这种开机启动配置方法,一直支持到cloudreve最新版本。 首先,创建一个cloudreve。service配置文件:〔rootiZuf66egabu9wj7z7x4b2yZ〕vimetcsystemdsystemcloudreve。service 在打开的新文件中,配置以下格式的数据:〔Unit〕DescriptionCloudreveDocumentationhttps:docs。cloudreve。orgAfternetwork。targetAftermysqld。serviceWantsnetwork。target〔Service〕WorkingDirectoryrootExecStartrootcloudreveRestartonabnormalRestartSec5sKillModemixedStandardOutputnullStandardErrorsyslog〔Install〕WantedBymultiuser。target 然后授予可执行权利:chmodxetcsystemdsystemcloudreve。service并更新配置:〔rootiZuf66egabu9wj7z7x4b2yZ〕chmodxetcsystemdsystemcloudreve。service〔rootiZuf66egabu9wj7z7x4b2yZ〕systemctldaemonreload 注意:其中的两个字段,〔Service〕模块下的:WorkingDirectory和ExecStart的参数值,需要根据我们的实际情况做出调整。 模板为:PATHTOCLOUDREVE这个变量就是我们的cloudreve的解压之后的目录路径WorkingDirectoryPATHTOCLOUDREVEExecStartPATHTOCLOUDREVEcloudreve 上面,我是直接在root目录下解压并执行的cloudreve。所以我的实例文档中配置的就是root文件夹了 剩下的,就可以执行服务器的各种配置启动了:(ps:如果是账户拥有root权限,就可以省略sudo字段)启动服务sudosystemctlstartcloudreve设置开机启动sudosystemctlenablecloudreve停止服务sudosystemctlstopcloudreve重启服务sudosystemctlrestartcloudreve查看状态sudosystemctlstatuscloudreve〔rootiZuf66egabu9wj7z7x4b2yZ〕vimetcsystemdsystemcloudreve。service〔rootiZuf66egabu9wj7z7x4b2yZ〕chmodxetcsystemdsystemcloudreve。service〔rootiZuf66egabu9wj7z7x4b2yZ〕systemctldaemonreload〔rootiZuf66egabu9wj7z7x4b2yZ〕systemctlstartcloudreve 到这里就启动服务了,其实也够我们使用的了。但是如果要能够开机自动启动。就需要配置:〔rootiZuf66egabu9wj7z7x4b2yZ〕systemctlenablecloudreve 到这里就配置完了cloudreve了。 下面就要配置ossfs了。配置完毕后,再配置oss路径到cloudrever之中就可以了。2。2安装ossfs ossfs可以让我们在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中。让我们能够像操作本地文件一样,操作OSS的对象。(PS:我们的云盘内容是存储在oss之中的,所以这一步是必须的) 首先:下载ossfs安装包:〔rootiZuf66egabu9wj7z7x4b2yZ〕wgethttps:gosspublic。alicdn。comossfsossfs1。80。6centos8。0x8664。rpm 下载完毕后在当前目录下就会出现一个ossfs1。80。6centos8。0x8664。rpm文件对象了。 通过ls命令可以查询:〔rootiZuf66egabu9wj7z7x4b2yZ〕lscloudrevecloudreve3。3。1linuxamd64。tar。gzcloudreve。dbconf。iniossfs1。80。6centos8。0x8664。rpm 然后我们如果在安装之前,需要更新一下系统的yum源。避免等会安装过程中出现依赖库找不到的问题。2。2。1更新yum源 首先:删除过期的repo文件:rootiZuf66egabu9wj7z7x4b2yZ〕rmfetcyum。repos。d 然后:挂载最新的CentOSBase。repo到etcyum。repos。d〔rootiZuf66egabu9wj7z7x4b2yZ〕wgetOetcyum。repos。dCentOSBase。repohttps:mirrors。aliyun。comrepoCentosvault8。5。2111。repo 然后刷新yum生成缓存tiZuf66egabu9wj7z7x4b2yZ〕yumcleanallyummakecache2。2。2安装 刷新完毕后,我们就可以开始安装了。(不执行上面的更新yum源也是可以的)〔rootiZuf66egabu9wj7z7x4b2yZ〕yuminstally。ossfs1。80。6centos8。0x8664。rpm 当出现Complete!的提示时,就代表安装完毕了。参考实例:〔rootiZuf66egabu9wj7z7x4b2yZ〕yuminstally。ossfs1。80。6centos8。0x8664。rpmLastmetadataexpirationcheck:0:01:40agoonTue18Oct202204:30:06PMCST。Dependenciesresolved。PackageArchitectureVersionRepositorySizeInstalling:ossfsx86641。80。61commandline2。1MInstallingdependencies:fusex86642。9。712。el8base82kfusecommonx86643。2。112。el8base21kTransactionSummaryInstall3PackagesTotalsize:2。2MTotaldownloadsize:104kInstalledsize:8。9MDownloadingPackages:(12):fusecommon3。2。112。el8。x8664。rpm85kBs21kB00:00(22):fuse2。9。712。el8。x8664。rpm89kBs82kB00:00Total111kBs104kB00:00RunningtransactioncheckTransactionchecksucceeded。RunningtransactiontestTransactiontestsucceeded。RunningtransactionPreparing:11Installing:fusecommon3。2。112。el8。x866413Installing:fuse2。9。712。el8。x866423Installing:ossfs1。80。61。x866433Runningscriptlet:ossfs1。80。61。x866433Verifying:fuse2。9。712。el8。x866413Verifying:fusecommon3。2。112。el8。x866423Verifying:ossfs1。80。61。x866433Installed:fuse2。9。712。el8。x8664fusecommon3。2。112。el8。x8664ossfs1。80。61。x8664Complete!2。2。3配置ossfs 配置账户访问信息,将Bucket名称以及具有此Bucket访问权限的AccessKeyID和AccessKeySecret信息,存储到etcpasswdossfs文件中。(该文件是不存在的,我们的本次操作就是创建一个该文件) 方法一:echo::etcpasswordossfs〔rootiZuf66egabu9wj7z7x4b2yZ〕echozinyan:LTAI5tKJAxZ3b9wdQZJGMHYm:NI88ivg6ZeFj5Td3IQj2j1v9e4z5o7etcpasswdossfs 方法二:〔rootiZuf66egabu9wj7z7x4b2yZ〕vimetcpasswdossfs 然后在打开的空文件中输入:::zinyan:LTAI5tKJAxZ3b9wdQZJGMHYm:NI88ivg6ZeFj5Td3IQj2j1v9e4z5o7 其中bucketName比较好理解,我们自己创建bucket的时候就会创建一个名称了。而accessKey和Secret,就需要我们在阿里云的AccessKey管理菜单中创建完毕,然后在OSS对象存储中给该用户进行授权。否则将会没有操作OSS的权限哦。BucketName:阿里云OSS控制台中创建的bucket名称。AccessKeyId:具有此Bucket访问权限的AccessKeyID。AccessKeySecret:具有此Bucket访问权限的AccessKeySecret。 配置完毕访问配置文件后,执行授权操作。〔rootiZuf66egabu9wj7z7x4b2yZ〕chmod640etcpasswdossfs 到这里,我们也只是将访问对象存储OSS的用户名和密码等配置完毕了。2。2。4挂载OSS 当我们配置完毕后,就要进行挂载操作了。也就是说将OSS关联到本地的某个文件夹下。通过mkdir命令创建一个文件夹。 实例:我创建了一个oss文件夹。(该文件夹名称可以随意定,并不一定必须叫做oss哦)〔rootiZuf66egabu9wj7z7x4b2yZ〕mkdiross〔rootiZuf66egabu9wj7z7x4b2yZ〕lscloudrevecloudreve3。3。1linuxamd64。tar。gzcloudreve。dbconf。iniossossfs1。80。6centos8。0x8664。rpm〔rootiZuf66egabu9wj7z7x4b2yZ〕 创建完毕文件夹后,就要咨询挂载操作了。通过:ossfsBucketNamemountfolderourlEndpointBucketName:阿里云OSS控制台中创建的bucket名称。mountfolder:上一步创建的挂载文件夹(也就是我们创建的oss文件夹)。Endpoint:OSS的ECS的经典网络访问(内网)的Endpoint。 实例:〔rootiZuf66egabu9wj7z7x4b2yZ〕ossfszinyanossourlosscnbeijinginternal。aliyuncs。com 其中BucketName和mountfolder都比较好理解。就是后面的url后面需要的Endpoint。 在我们创建的OSS对象的概述菜单下,有一个访问域名的配置项: 实例如下: Endpoint(地域节点) Bucket域名 HTTPS 外网访问 osscnbeijing。aliyuncs。com zinyan。osscnbeijing。aliyuncs。com 支持 ECS的经典网络访问(内网) osscnbeijinginternal。aliyuncs。com zinyan。osscnbeijinginternal。aliyuncs。com 支持 ECS的VPC网络访问(内网) osscnbeijinginternal。aliyuncs。com zinyan。osscnbeijinginternal。aliyuncs。com 支持 传输加速域名(全地域上传下载加速) 未开启 开启 支持 HDFS服务 未开启 未开启 可以填写前面的osscnbeijinginternal。aliyuncs。com也可以填写后面我们映射了域名的zinyan。osscnbeijinginternal。aliyuncs。com。 注意:内网映射访问,ECS访问OSS是没有流量费的,是免费的哦。 配置完毕后,可以通过dfh检测挂载是否成功:〔rootiZuf66egabu9wj7z7x4b2yZ〕dfhFilesystemSizeUsedAvailUseMountedondevtmpfs388M0388M0devtmpfs405M0405M0devshmtmpfs405M452K404M1runtmpfs405M0405M0sysfscgroupdevvda340G3。3G37G9devvda2100M7。3M93M8bootefitmpfs81M081M0runuser0ossfs256T0256T0rootoss〔rootiZuf66egabu9wj7z7x4b2yZ〕 其中出现了ossfs就代表我们已经挂载成功了,挂载到了root的oss文件夹下了。2。2。5配置开机启动 挂载完毕后,我们就需要配置开机启动了。〔rootiZuf66egabu9wj7z7x4b2yZ〕vimetcinit。dossfs 在打开的新文件中,配置以下格式的数据;ossfsBucketNamemountfolderourlEndpointoallowother 效果如下:(注意,!binbash这串代码比较重要,不配置的话,chkconfig无法生效哦)!binbashossfsAutomountAliyunOSSBucketinthespecifieddirecotry。chkconfig:23459010description:ActivatesDeactivatesossfsconfiguredtostartatboottime。ossfszinyanossourlosscnbeijinginternal。aliyuncs。comoallowother 相较于上面的挂载指令,多添加了一个oallowother选项而已。 然后再赋予ossfs脚本可执行权限,并将该脚本作为服务,执行开机自动启动。〔rootiZuf66egabu9wj7z7x4b2yZ〕chmodaxetcinit。dossfs〔rootiZuf66egabu9wj7z7x4b2yZ〕chkconfigossfson3。配置cloudrever 当我们cloudrever和oss的依赖都配置完毕后。登录cloudrever管理账户,点击管理账户头像,选择:管理面板菜单。 在弹出的确定站点URL设置对话框中选择更改。或者忽略都可以。然后在左侧导航栏中,选择存储策略 然后执行添加存储策略: 在弹框中选择:本机存储 然后开始配置本机存储策略。 上传路径中的存储目录配置为:ossObject路径{uid}{path} oss就是我们定义的挂载文件夹名称。(上面实例中挂载名称就是oss所以这里不用改) 而object路径,就是我们OSS存储对象中的文件路径。 例如我要存储在对象存储的cloudfile文件夹下。那么就可以写为:osscloudfile{uid}{path}因为我的cloudreve目录和oss目录是在同一目录下的,所以我可以直接配置osscloud进行配置。 如果我们ossfs挂载的路径和cloudreve并不是在同一目录下,那么我们需要写完整的绝对路径。否则会无法同步内容到oss中的哦 然后其他项目不用修改。执行下一步。在直链设置中设置为禁止。 最后在上传限制上,设置为不限制(是否限制,根据自己的要求来,之后仍然可以进行修改的) 最后,就是创建一个策略名称,然后进行完成就可以了。 最后,在用户组中,给用户添加存储策略,让这个用户上传的内容使用该存储策略就可以了。 那么这个用户上传的数据,就会全部在该存储策略关联的数据地址上了。 我们可以试试上传操作了。上传完毕后就可以在oss中看到我们上传的内容资料了(会稍微延迟一会)。4。后记 该配置方法,是通过访问ECS服务器资源进行获取OSS对象存储数据的。而内网访问OSS是没有流量费用的。所以我们如果有一个ECS服务器和OSS对象存储器的话。 那么使用该方法可以更高效的利用两者之间的关系哦。 上面只是简单的cloudreve的配置。cloudreve还有很多配置项进行配置例如支持https,修改服务器数据库为Mysql等等4。1忘记cloudreve管理员密码忘记管理员密码后,可以通过删除cloudreve。db文件,然后重新执行。cloudreve会生成新的账户密码。(原有配置账户全丢失了)在cloudreve安装目录下执行:。cloudrevedatabasescriptResetAdminPassword。(不会丢失配置信息,只会重置管理员的密码,新密码会在日志中输出。)