上周趁 U-File 开放注册的时候注册了一个账户,白嫖了一个无限存储 2T 流量的空间,等了许久终于审核通过后上控制台看了下,应该使用的是又拍云对象存储,我测试了几款又拍云提供的工具,都是可以正常使用的。

唯一有点遗憾的是,又拍云存储暂未支持镜像回源,说来也奇怪,阿里 OSS、腾讯 COS、百度 BOS 三个大厂的对象存储以及七牛云这类小厂都能支持镜像回源,又拍云居然不跟进。

既然不支持镜像回源,而我又需要 U-File 来镜像加速我的图床,只能采取另外的方案了。所以我在又拍云的文档里找到了 UPX 命令行工具,其中有一个 sync 可以用来同步本地路径到又拍云对象存储上面,虽然无法实现镜像回源,但是云存储的数据能和本地同步,也算是镜像的另一种形式。

项目介绍

UPX 是专为开发者设计的,基于命令行的云存储管理工具。它可以实现文件上下传、增量文件同步、目录创建删除、文件删除(包括异步文件批量删除)等。

开源项目:https://github.com/upyun/upx

详细介绍可以查看项目的 README

这里主要写一下如何在 CentOS 上面使用 upx 同步本地文件到又拍云存储。

安装 UPX

# 64 位系统下载
wget -O /usr/local/bin/upx http://collection.b0.upaiyun.com/softwares/upx/upx-linux-amd64-v0.2.6
# 32 位系统下载
wget -O /usr/local/bin/upx http://collection.b0.upaiyun.com/softwares/upx/upx-linux-386-v0.2.6
# 给予权限
chmod +x /usr/local/bin/upx

安装好之后可以直接输入 upx 查看是否安装成功

命令介绍

所有命令都支持 -h 查看使用方法
命令说明
login登录又拍云存储
logout退出帐号
sessions查看所有的会话
switch切换会话
info显示服务名、用户名等信息
cd改变工作目录(进入一个目录)
pwd显示当前所在目录
mkdir创建目录
ls显示当前目录下文件和目录信息
tree显示目录结构
get下载一个文件或目录
put上传一个文件或目录
rm删除目录或文件
sync目录增量同步,类似 rsync
auth生成包含空间名操作员密码信息的 auth 字符串
post提交异步处理任务
purge提交 CDN 缓存刷新任务
global options说明
--quiet, -q不显示信息
--auth valueauth 字符串
--help, -h显示帮助信息
--version, -v显示版本号

登陆又拍云

输入 upx login 命令,依次输入服务名、操作员、操作员密码后回车登陆,看到 Welcome to 即表示登陆成功。

可以输入 upx info 查看信息,CurrentDir 为当前所在目录,Usage 为已使用空间。

UPX 还支持多账户登陆,可以使用 upx sessions 来查看所有登陆会话,使用 upx switch 来切换会话,由于我没有多余的账户,这里就不进行演示。

同步文件

首先 cd 打开要同步的目录,然后使用 upx sync 来进行同步。

比如我输入的 upx sync 2020/ /2020/,就是将当前目录下的 2020 文件夹同步到又拍云存储上面根目录下的 2020 文件夹。

同步完成之后会有以上提示,使用 FTP 工具连接上 U-File 可以看到 2020 目录已经完整的同步过来了。

此方法也可以用于同步其他网站程序的静态资源

WordPress

upx sync wp-content/uploads/ /wp-content/uploads/

Typecho

upx sync usr/uploads/ /usr/uploads/

Flarum

upx sync public/assets/ /public/assets/

千万不要直接同步网站的根目录,因为根目录下面可能包含 config 配置文件,比如 WordPress 的 wp-config.php 文件,里面包含了数据库等重要信息,而上传到又拍云存储之后可以被任何人下载,严重影响安全性。

定时同步

目前 upx sync 使用的是增量同步的方式,暂不支持实时同步,所以只能选择计划任务的方式来实现定时同步。

这里使用的是宝塔面板的计划任务,比 Crontab 使用起来简单一些。

需要注意一下,在计划任务里面执行 upx sync 要把同步的目录改成以系统为根目录。

我设置的是一分钟同步一次,一分钟后来看一下日志,可以看到同步是正常的

+=============+=========+===========+================+===========+=============+
| SYNC_EXISTS | SYNC_OK | SYNC_FAIL | SYNC_NOT_FOUND | DELETE_OK | DELETE_FAIL |
+-------------+---------+-----------+----------------+-----------+-------------+
|         571 |       0 |         0 |              0 |         0 |           0 |
+-------------+---------+-----------+----------------+-----------+-------------+
----------------------------------------------------------------------------
★[2020-05-30 13:50:04] Successful
----------------------------------------------------------------------------
如果觉得我的文章对你有用,请随意赞赏