上周趁 U-File 开放注册的时候注册了一个账户,白嫖了一个无限存储 2T 流量的空间,等了许久终于审核通过后上控制台看了下,应该使用的是又拍云对象存储,我测试了几款又拍云提供的工具,都是可以正常使用的。
唯一有点遗憾的是,又拍云存储暂未支持镜像回源,说来也奇怪,阿里 OSS、腾讯 COS、百度 BOS 三个大厂的对象存储以及七牛云这类小厂都能支持镜像回源,又拍云居然不跟进。
既然不支持镜像回源,而我又需要 U-File 来镜像加速我的图床,只能采取另外的方案了。所以我在又拍云的文档里找到了 UPX 命令行工具,其中有一个 sync
可以用来同步本地路径到又拍云对象存储上面,虽然无法实现镜像回源,但是云存储的数据能和本地同步,也算是镜像的另一种形式。
项目介绍
UPX 是专为开发者设计的,基于命令行的云存储管理工具。它可以实现文件上下传、增量文件同步、目录创建删除、文件删除(包括异步文件批量删除)等。
开源项目:https://github.com/upyun/upx
详细介绍可以查看项目的 README
这里主要写一下如何在 CentOS 上面使用 upx
同步本地文件到又拍云存储。
安装 UPX
bash 代码:# 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
bash 代码:# 给予权限
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 value | auth 字符串 |
--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
bash 代码:upx sync wp-content/uploads/ /wp-content/uploads/
Typecho
bash 代码:upx sync usr/uploads/ /usr/uploads/
Flarum
bash 代码:upx sync public/assets/ /public/assets/
千万不要直接同步网站的根目录,因为根目录下面可能包含 config 配置文件,比如 WordPress 的 wp-config.php
文件,里面包含了数据库等重要信息,而上传到又拍云存储之后可以被任何人下载,严重影响安全性。
定时同步
目前 upx sync
使用的是增量同步的方式,暂不支持实时同步,所以只能选择计划任务的方式来实现定时同步。
这里使用的是宝塔面板的计划任务,比 Crontab 使用起来简单一些。
需要注意一下,在计划任务里面执行 upx sync
要把同步的目录改成以系统为根目录。
我设置的是一分钟同步一次,一分钟后来看一下日志,可以看到同步是正常的
bash 代码:+=============+=========+===========+================+===========+=============+
| 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
----------------------------------------------------------------------------
感觉贵站非常不错,希望与贵站友情链接!
我的网站:建站知道网-http://wozhidaole.com.cn
如果同意互换友情链接,请回复!
暂无点赞