个人网盘使用经验

发布: 2023-02-25   上次更新: 2024-05-02   分类: 效率工具   标签: rclone

文章目录

网盘已经是每个现代人离不开的工具,这篇文章就来介绍一下笔者是如何选择网盘、以及如何进行网盘同步、预览。

网盘选择

笔者是多年的 macOS、iOS 用户,因此之前一直使用 iCloud 进行文件的同步,它可以自动把 Desktop Documents 这两个文件夹映射到 iCloud,使用起来还算方便,但是有时会出现文件同步失败。

这个时候基本上没什么排查思路,只能靠重启电脑解决,iCloud 另一个问题就是与苹果生态严重绑定,不方便迁移平台,因此还是需要寻找个更加靠谱且跨平台的方案。

首先明确一点,国内、国外网盘的运营思路完全不同,网内基本上都是靠大规格免费空间来吸引用户,而国外网盘免费空间只有 5G 左右,如果要扩容则需要付费。

由于国内网盘开放性很差,基本上只能使用其自家客户端才能方便上传下载,因此笔者一开始就不打算选择国内的服务,经过一番探索,笔者锁定了以下几家网盘服务:

网盘免费额度付费方案WebDAV
Google drive15GHK$15 每月,100G需要借助三方工具,比如 gdrive-webdav
TeraCloud20G300G 79.99 USD/年;3T 119USD/年;10T 399USD/年支持
pCloud10G 需要做任务一次性方案:199USD 500G,年付方案:49USD自 2022/02/11 后,只有 Premium 用户可以
Yandex disk10G200G 1.19$/月,1T 2.09$/月,3T 5.89$/月支持

上面的网盘厂商均比较老牌:

  • Google 自不必多说
  • TeraCloud 是一家日本公司,公司最早成立于 2001 年,于 2014 年推出云存储服务
  • pCloud 是一家成立于 2013 年的瑞士公司,一直专注在云存储领域
  • Yandex 是俄罗斯最大的搜索引擎,云盘服务属于其 360 套餐的一部分,而且价格最为实惠。

注:TeraCloud 在 2023-04-03 号已经改名为 InfiniCloud,野心着实不小。

除了 GDrive 外,其余两个国内均可直接访问。如果读者也打算注册 TeraCloud,可以使用笔者的邀请码: A39SX ,这样你可以获得永久的 5G 空间,我可以获得为期一年的 2G 空间。

如果注册 pCloud,可以使用笔者的邀请链接,这样我们都能获得 1G 免费空间。

WebDAV

WebDAV 的全称是“Web-based Distributed Authoring and Versioning”。WebDAV 扩展 HTTP 协议,实现了文件的上传、下载与管理。

在选择网盘时,WebDAV 协议的支持是笔者特别留意的,很多软件(比如福昕阅读器)都有对 WebDAV 的支持,这样就可以方便地在电脑、iPad、手机之间进行文件同步。

而且 WebDAV 的认证比较简单(Basic Auth 即可),可以方便的编程使用,下面是一个文件上传的示例:

1
2
3
4
5
6
box_url="https://webdav.yandex.com"
file="$1"
user="${2}"
pass="${3}"

curl "$box_url" -T "$file" -u "${user}:${pass}" -sw "%{http_code}"

同步工具

选定好了网盘,下一步就是同步,经过一番探索,发现了 rclone 这个神器,它基本上对主流的网盘服务都有提供支持,而且最重要的一点,其自身也是开源产品:

  • Rclone - rsync for cloud storage

使用方式也很简单:

1
2
3
rclone ls remote:path # lists a remote
rclone copy /local/path remote:path # copies /local/path to the remote
rclone sync -i /local/path remote:path # syncs /local/path to the remote

在首次安装好后,可以执行 rclone config 进行交互式配置,它会遵循 XDG 目录规范,在笔者电脑上的位置是 $HOME/.config/rclone/rclone.conf ,内容大概如下:

[TeraCloud]
type = webdav
url = https://ena.teracloud.jp/dav/
vendor = other
# user = username
# pass = password

上面给出了一个基于 webDAV 协议的网盘的配置,出于安全考虑,rclone 在保存密码时会采用混淆的方式,除了直接在配置文件中配置密码外,rclone 还支持通过环境变量来配置参数。

WebDAV 协议来说,它支持 RCLONE_WEBDAV_PASS 环境变量来设置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
--webdav-pass Password.

NB Input to this must be obscured - see rclone obscure.

Properties:

Config: pass
Env Var: RCLONE_WEBDAV_PASS
Type: string
Required: false

而且为了解决多帐号的问题,rclone 支持的环境变量还支持以下方式

1
RCLONE_CONFIG_ + name of remote + _ + name of config file option and make it all uppercase.

比如:

1
2
3
4
5
$ export RCLONE_CONFIG_MYS3_TYPE=s3
$ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
$ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
$ rclone lsd mys3:
          -1 2016-09-21 12:54:21        -1 my-bucket

通过这种方式,就可以把密码与配置文件分别保存,尽最大可能保证密码安全。

Sync

上面介绍了 rclone 的基本配置,这里主要介绍如何进行备份。主要是 sync 命令

1
rclone sync SOURCE remote:DESTINATION

会把 SOURCE 同步到 remote 端的 DESTINATION 位置上,并且只会修复 DESTINATION 位置上的文件,这也就是说 sync 命令是单向的。 由于这条命令可能会删除文件,因此一般建议在首次执行时加上 --dry-run 参数,确认无误后在进行同步。

在进行文件同步时,可能会希望过滤掉一些文件,比如 macOS 下的 .DS_Store ,这时可以通过 exclude 选项,它的文档上有详细的例子,这里不再赘述。

最后,为了实现定期备份,可以把 sync 命令放到 crontab 中执行:

1
2
3
4
5
SHELL=/bin/bash
PATH=/usr/bin:/bin:/opt/homebrew/bin
RCLONE_CONFIG_TERACLOUD_PASS=混淆后的密码
# {minute} {hour} {day of month} {month} {day of week} {command}
10 */4 * * * ~/syncfiles.sh >> /tmp/sync-files.log 2>&1

上面首先定义了一些环境变量,后面才是具体需要执行的命令。

除了单向的 sync 命令外,rclone 还有一个双向同步的 bisync,但还在测试阶段,而且依赖后端存储支持修改时间,因此可选的后端目前来说还比较少。

可视化工具

rclone 解决了网盘同步问题,但是没有解决文件预览的问题,而且在日常使用过程中不可避免的要用到国内的网盘,如何避免下载其客户端呢? 答案是另一个神器:Alist,它对国内外常用网盘都会提供支持,像百度网盘、迅雷网盘、WebDAV 等等,具体可以参考它的文档:添加存储

它的安装、使用也比较简单,基本上对照着文档来就好了,只是需要注意一点,国内的网盘可能会有各种限制,因此之前的认证方式可能会失效, 不过好在 alist 这个项目是开源的,issue 里面一般都会有小伙伴贡献自己的解决经验。

如果希望在开机时自动启动 alist 服务器,可以参考文档增加对应的守护进程,对应 macOS 就是 LaunchAgents。

总结

在发现 rclone、alist 这两个工具时,真是感叹开源世界的魅力,尽管商业公司有各种条条框框的限制,但对于极客来说都不是事,他们总有自己的应对之策。

笔者目前用的还是网盘的免费额度,主要用来同步开发中用到的 dotfiles、证书等,基本上都是文本文件,因此所需存储空间不大。对于视频、照片目前还是放在百度网盘中。 后续会根据使用情况来决定是否转到付费版。

V2EX 上讨论 💬

扩展阅读

评论

Bill Haku 在 2023-02-26 16:05:32 评论

您好,读了您有关个人网盘使用经验的博客,对国外的网盘有了一定的了解之后,感觉还是不如使用自己的 nas。

首先我基本同意您关于放弃国内的网盘的看法,国内的网盘相比国外可能只 有同容量价格上有一定的竞争力了。不过正因如此相对而言国外的几家网盘服务是真的贵, 因此让我考虑自己购买了nas搭建自己的网盘。我购买的是比较贵的群晖的nas+4*4T的硬盘, 因为有容灾设计,可用空间10T,价格大约3500元。iCloud的价格是每个月68 2T,Google drive价格差不多,别的我不知道但是估计也差不多。如果按照每月68来算,也只需要4年多 就可以就可以买一台我的nas了,而且我可以用10T,因此经济上这个非常实惠。

而在功能性上,对于极客而言,显然nas的功能性更加多样。除了webdav支持,内网可以用 smb直接当内置硬盘用,群晖提供的同步工具也很好用直接上手就用,此外可以安装docker 极大的扩展功能性。如果有公网ip的话,配置一个ddns显然不是难事,即使是用内网穿透, 也完全可用。在文件的隐私性上,肯定是nas更好,而安全性的话自带的raid 5已经足够可 靠了,同时也可以不开百度网盘的会员借用他的空间慢慢共享到百度网盘作为异地备份,反 正挂在nas上时间就无所谓了120k的网速也没事

博主回复
您好,很高兴我的文章对您有所借鉴。 能够 DIY 自己去组建 NAS 肯定是最极客的玩法。至于价格,¥3500 感觉不 贵,按照国外网盘价格,4 年左右基本就扯平了。而且 NAS 带来的可玩性肯定也是比网盘要高。 我目前的方案主要还是方便为主,而且文件数不多,我文章里面的方案其实 已经用了半年左右,所有文件加起来也才不过 1G 左右。主要是我只是用来存纯文本,照片、视频这些还是用的百度云盘。

评论

欢迎读者通过邮件与我交流,也可以在 MastodonTwitter 上关注我。