我搭建一个好用的云盘,并支持多用户注册登录-cloudeve

闲来无事,就准备在github上找一些比较实用的项目,部署的玩一玩。于是就想到了搭建一个云盘,自己可以用而且还可以分享给朋友一起用。于是就找到了Cloudeve这个开源项目。

github地址:https://github.com/cloudreve/Cloudreve/releases

选择它的原因:

  1. 部署简单,使用方便,界面简洁。
  2. 有专业的团队支持,社区较为活跃。
  3. 文件存储方式支持多种,包括本地存储,市面各种流行的oss存储,七牛云,又拍云等等

部署步骤

参考自,Cloudeve的官网,快速开始地址

  • 获取Couldeve的部署文件

    官方下载地址:https://github.com/cloudreve/Cloudreve/releases

    个人提供下载:https://oyqiao.cn/files/cloudreve_3.1.1_linux_amd64.tar.gz

    其实Cloudeve官方提供了linux和windows的部署方式,这里仅此介绍linux部署方式。

  • 启动 Cloudreve

    #解压获取到的主程序
    tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz
    # 赋予执行权限
    chmod +x ./cloudreve
    # 启动 Cloudreve
    ./cloudreve
    

    Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户。

    Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve。

    以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让Cloudreve更好的工作,具体流程请参考下面的配置流程。

可选部署流程

  • 可能你想要反向代理

    多种反向代理方式,我采用的是nginx反向代理,只需要将指定域名指向 你服务器的IP:5212

    nginx.config文件的server中添加:

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://127.0.0.1:5212;
        # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
        # client_max_body_size 20000m;
    }
    
  • 可能你想要进程守护

    官方提供了SystemdSupervisor两种方式的基本模板

    这里只简单介绍Systemd的方式:

    1. 编辑配置文件
    vim /usr/lib/systemd/system/cloudreve.service
    
    1. 将下文 PATH_TO_CLOUDREVE 更换为程序所在目录:
    [Unit]
    Description=Cloudreve
    Documentation=https://docs.cloudreve.org
    After=network.target
    Wants=network.target
    [Service]
    WorkingDirectory=/PATH_TO_CLOUDREVE
    ExecStart=/PATH_TO_CLOUDREVE/cloudreve
    Restart=on-abnormal
    RestartSec=5s
    KillMode=mixed
    StandardOutput=null
    StandardError=syslog
    [Install]
    WantedBy=multi-user.target
    
    1. 设置开机启动
    # 更新配置
    systemctl daemon-reload
    # 启动服务
    systemctl start cloudreve
    # 设置开机启动
    systemctl enable cloudreve
    
    1. 管理命令
    # 启动服务
    systemctl start cloudreve
    # 停止服务
    systemctl stop cloudreve
    # 重启服务
    systemctl restart cloudreve
    # 查看状态
    systemctl status cloudreve
    
  • 可能你想要自定义配置文件

    1. 使用 MySQL

    默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件cloudreve.db,如果您想要使用 MySQL,请在配置文件中加入以下内容,并重启 Cloudreve。注意,Cloudreve 只支持大于或等于 5.7 版本的 MySQL 。

    [Database]
    ; 数据库类型,目前支持 sqlite | mysql
    Type = mysql
    ; MySQL 端口
    Port = 3306
    ; 用户名
    User = root
    ; 密码
    Password = root
    ; 数据库地址
    Host = 127.0.0.1
    ; 数据库名称
    Name = v3
    ; 数据表前缀
    TablePrefix = cd
    
    1. 使用 Redis

      你可以在配置文件中加入 Redis 相关设置:

      [Redis]
      Server = 127.0.0.1:6379
      Password = your password
      DB = 0
      

      重启 Cloudreve 后,可注意控制台输出,确定 Cloudreve 是否成功连接 Redis 服务器。使用 Redis 后,以下内容将被 Redis 接管:

      • 用户会话(重启Cloudreve后不会再丢失登录会话)

      • 数据表高频记录查询缓存(如存储策略、设置项)

      • 回调会话

      • OneDrive 凭证

    更多的自定义配置还请参考官网的快速开始这里只提供我常用的,可能会用到部分内容。

    我的云盘地址

目前使用出现的问题

我配置的是又拍云oss储存,开源正常上传,但是下载的时候就会出现404。
原因就是,从cloudeve下载的路径参数添加了 ?_upd=文件名。在社区查询了一下,可能是又拍云之前下载是需要这个参数的,后来CDK更新了之后,并不需要了,cloudeve一直都没有更新,导致通过又拍云下载需要将路径的_upd参数给删掉,这点比较蛋疼。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个用 Vue 搭建的登录注册页面,并且包含了详细的登录和注册请求方案。 ```html <template> <div> <h2>登录</h2> <form> <div> <label>用户名:</label> <input type="text" v-model="loginForm.username" /> </div> <div> <label>密码:</label> <input type="password" v-model="loginForm.password" /> </div> <button type="submit" @click.prevent="login">登录</button> </form> <h2>注册</h2> <form> <div> <label>用户名:</label> <input type="text" v-model="registerForm.username" /> </div> <div> <label>密码:</label> <input type="password" v-model="registerForm.password" /> </div> <div> <label>确认密码:</label> <input type="password" v-model="registerForm.confirmPassword" /> </div> <button type="submit" @click.prevent="register">注册</button> </form> </div> </template> <script> export default { data() { return { loginForm: { username: '', password: '' }, registerForm: { username: '', password: '', confirmPassword: '' } } }, methods: { login() { // 发送登录请求 const { username, password } = this.loginForm axios .post('/api/login', { username, password }) .then(res => { console.log(res.data) }) .catch(err => { console.error(err) }) }, register() { // 发送注册请求 const { username, password, confirmPassword } = this.registerForm if (password !== confirmPassword) { alert('两次密码输入不一致') return } axios .post('/api/register', { username, password }) .then(res => { console.log(res.data) }) .catch(err => { console.error(err) }) } } } </script> ``` 这个页面包含了一个登录表单和一个注册表单,每个表单都有用户名和密码字段,注册表单还有确认密码字段。当用户填写完表单后,点击提交按钮会触发相应的方法,发送登录或注册请求。登录请求通过 POST 方法发送到 `/api/login` 接口,注册请求通过 POST 方法发送到 `/api/register` 接口。你可以根据自己的需求,修改接口的地址和请求的参数。在注册请求中,我们还增加了密码确认的逻辑判断,确保用户输入的两次密码一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值