专栏首页时光笔记搭建Cloudreve云盘

搭建Cloudreve云盘

说到云盘,想来最初用到的其实是网吧的临时存储盘,临时存储盘其实就是网吧搭建的局域网云盘系统,可以通过网管软件进行访问。主要用途就是可以存储一下游戏存档,因为网吧的电脑一般重启后数据就全部丢失了,下次再来上网,上次的游戏数据就没了。

后来接触到了QQ的文件中转站功能,相比网吧的临时存储盘,QQ文件中转站不仅限于局域网访问,可以实现互联网中任意电脑之间的文件网络中转和文件存储。

大概在2012年的时候,大批网盘应用相应上线,腾讯微云、百度网盘、360网盘等等等。由于是之前用的是QQ的文件中转站,所以最先用到的是腾讯微云,最开始的容量貌似是2GB。后来百度网盘,360网盘的上T容量吸引了我,百度网盘是下载手机版送2T的空间,360网盘也是做任务送容量,当时我做到了40T,而且当时360网盘没有会员制度,下载速度比百度网盘感人的多,360还有文件共享群,有分享系统镜像的、电影电视剧的,可以一键转存到自己网盘空间,相当方便。家里也是一直在用360全家桶,而且360主要的产品就是安全软件,心里可能觉得360云盘更安全一点,所以最后360网盘成为了我主要的存储以及备份途径。

然而就在短短4年的时间,2016年就有大批网盘相继关停了,属于用户的网盘时代可以说就此结束了。360网盘在这次风波中也没能幸免,最后它转型做了企业网盘。现在想来感觉也还是很惋惜,因为对360网盘的印象很好,在这也希望它能重新开放个人网盘业务。这场风波过后网盘用户就像待宰的绵羊,会员价格一高再高,出了VIP还有出超级VIP,而且用户数据隐私也是一大问题。

在前段时间看了博友大大的小熊的一篇关于搭建Cloudreve云盘的文章,所以利用这段时间自己也折腾起了私有云盘。Cloudreve支持VPS的本地存储、云存储(七牛、COS)、onedrive、远程存储服务器 等等。这里面吸引我的就是远程存储服务器的存储方式,因为它可以实现将网盘数据存储到自建的远程存储服务器上。而我就想要将数据存储到家里路由器的外接硬盘里,这样数据就在我身边,更放心一些。

但是想要在路由器上搭建远程存储服务器,那就必须需要在路由器上安装PHP环境。但我的TPLink家用路由器安装PHP有些吃力。本想就此作罢,但临睡前灵光乍现,想到了一套可行的解决方案,大体步骤就是Cloudreve的使用本地存储方案,也就是将数据存储到VPS的/public/upload路径,而路由器再开SMB文件共享,然后通过Frp将445端口映射到VPS的4451端口上,此时VPS与路由器的SMB网路就通了,然后再将SMB共享挂载到VPS的/public/upload路径上。

路由器端步骤

安装软件包,创建存储目录

# 安装软件包
opkg update
opkg install shadow-common
opkg install shadow-useradd
opkg install samba36-server

# 创建SMB共享目录
mkdir -p /share/pan
# 创建用户并授权
useradd -s /sbin/nologin www
smbpasswd www # 设置个密码:123456
chown -R www /share/pan

frpc.ini

[common]
server_addr = 服务地址
server_port = 服务端口
token = 授权Token

[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 4451

/etc/samba/smb.conf.template

[global]
    netbios name = Home 
    display charset = utf-8
    interfaces = 127.0.0.1/8 lo 192.168.3.1/24 br-lan
    server string = OpenWrt
    unix charset = utf-8
    workgroup = WORKGROUP
    browseable = yes
    deadtime = 30
    domain master = yes
    encrypt passwords = true
    enable core files = no
    guest account = nobody
    guest ok = yes
    #invalid users = root
    local master = yes
    load printers = no
    map to guest = Bad User
    max protocol = SMB2
    min receivefile size = 16384
    null passwords = yes
    obey pam restrictions = yes
    os level = 20
    passdb backend = smbpasswd
    preferred master = yes
    printable = no
    security = user
    smb encrypt = disabled
    smb passwd file = /etc/samba/smbpasswd
    socket options = TCP_NODELAY IPTOS_LOWDELAY
    syslog = 2
    use sendfile = yes
    writeable = yes

/etc/config/samba

config samba
    option 'name'            'OpenWrt'
    option 'workgroup'        'WORKGROUP'
    option 'description'        'OpenWrt'
    option 'homes'            '1'

config 'sambashare'
    option 'name' 'pan'
    option 'path' '/share/pan'
    option 'writable' 'yes'
    option 'guest_ok' 'no'
    option 'users' 'www'
    option 'create_mask' '0755'
    option 'dir_mask' '0755'
    option 'read_only' 'no' 
#重启samba
/etc/init.d/samba restart
#启动frpc
/root/frp/frpc

VPS操作

#安装cifs
yum install cifs-utils
#挂载
mount -t cifs -o port=4451,username=www,password=123456,vers=1.0,iocharset=utf8,rw,dir_mode=0755,file_mode=0755 //127.0.0.1/pan /www/wwwroot/pan/public/uploads/

#因为路由器通过frp将445端口映射到VPS的4451端口,所有VPS的路径直接写回环地址127.0.0.1即可

如此这般操作后,在Cloudreve在读写/public/upload目录时,实际上是通过SMB共享去读写家里路由器上的硬盘。技术含量不高,但这里需要注意一点SMB权限的问题,SMB不能使用匿名登录方式共享,不然VPS挂载后Cloudreve将因为权限问题没办法写入。但是建议使用正规套路去实现远程存储,比如在路由器上搭建Cloudreve的远程存储服务器来实现。

另外Cloudreve的BUG实在有点多,没有点编程基础会用不来。大家有什么推荐的开源云盘程序吗?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 搭建Dubbo Admin_本地

    github: https://github.com/apache/dubbo-ops

    Melody132
  • Java 对象的初始化过程_上

    本文主要以白话的形式 ‘简单’ 的描述在 java 中 new 对象的过程,之所以说是 ‘简单’ 的描述是因为,在本文中不会讲述底层的加载过程。

    Melody132
  • Java 的单例设计模式

    当对象作为一个缓存容器时,假设说,对象 @object1 缓存到了容器实例@cache1中。如果想要命中 @object1 就一定要去实例@cache1 中去取...

    Melody132
  • 解决“Cannot merge new index xxx into a non-jumbo instruction”的问题

    xxx一般是一个整数,比如66345等,从这个提示看,和Dex方法超过64K的限制一样,应该是同一个问题。不过App已经解决了这个64K方法的问题,怎么还会提示...

    飞雪无情
  • 粗暴的优化,玩不了信息流广告投放

    报名中:数据化营销与运营大课堂【2019年5月25日、26日上海,宋星大课堂】,点击查看详情。

    iCDO互联网数据官
  • 有趣的算法(五) ——Dijkstra双栈四则运算

    有趣的算法(五)——Dijkstra双栈四则运算 (原创内容,转载请注明来源,谢谢) 一、概念 近期看到算法书上,提到dijkstra双栈的方法,实现输入一...

    用户1327360
  • CNN之卷积层

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 卷积神经网络在深度学习领域是一...

    昱良
  • 为基于 xulrunner 的内嵌 Gecko 程序启用 Profile

    Mozilla 自带的 Profile 支持实际上是非常给力的,看看 %appdata%/Mozilla/Firefox 下的文件就能知道,这里存放着许多的信息...

    mzlogin
  • 5分钟吃透React Native Flexbox

    今天我们来聊聊Flexbox,它是前端的一个布局方式。在React Native中是主流布局方式。如果你刚刚入门React Native,或者没有多少前端的技术...

    Rouse
  • linux split join paste uniq tee sort 工作中文本操作常用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details...

    bear_fish

扫码关注云+社区

领取腾讯云代金券