用 rclone 把视频库同步到对象存储:断点、加密、去重
上篇讲了对象存储归档的思路,这篇讲"怎么把本地视频库稳稳搬上去"。我用的是 rclone——一个支持 40 多种后端(S3/OSS/COS/WebDAV 全包)的同步工具,比各家官方 CLI 统一,断点续传、加密、去重一把抓。
配置一个 remote
rclone config
选 s3 / alias 之类,填 key/secret/region,起个名比如 oss。配完 rclone lsd oss: 能列桶就成功了。
同步
rclone sync ./videos oss:bucket/videos --progress
--progress 看实时进度。rclone 只传差异,中断了重跑会从断点继续,不像 cp 从头来。
坑一:sync 是单向覆盖,误删会同步删
rclone sync 的逻辑是"让远端 = 本地"。你手滑删了本地一个文件夹,再 sync,远端也跟着没。我吃过这亏,丢过一批。现在两个习惯:
- 归档用
rclone copy(只增不删),不用 sync; - 真要 sync,加
--backup-dir oss:bucket/trash/把被删的先挪回收站。
坑二:大文件上传超时
几个 GB 的单文件,默认分片可能超时失败。调大分片:
rclone sync ./videos oss:bucket/videos --s3-chunk-size 64M --transfers 4
--transfers 4 并行 4 个,快不少。
加密层
视频不想明文放云端(尤其是敏感录制),在 remote 上再挂一层 crypt:
rclone config # 加一个 type=crypt 的 remote,后端指向上面的 oss
rclone copy ./videos oss_crypt:videos
密钥只在本地,云端是密文,即使桶泄露也读不了。
去重后再传
传之前本地先去重,别把重复文件也传上去白花钱(接前面"下载 1000 个视频清理重复"那篇)。或者 rclone dedupe oss:bucket/videos 在远端去。
定时增量
写进 crontab 每天凌晨增量:
0 3 * * * rclone copy ./videos oss:bucket/videos --log-file /var/log/rclone.log
(cron 表达式那篇讲过怎么写)。这样每天新增自动上云,本地盘只留热数据,冷的全在对象存储里。
小结
rclone 是"视频上云归档"的瑞士军刀:copy 保安全、crypt 保隐私、chunk 保大文件、cron 保自动。配一次,后面基本不用管。