4

清空又拍云对象存储后如何

 3 years ago
source link: https://www.gaficat.com/posts/a12967c5.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

简单介绍又拍云的UPX工具使用方法,重点记录清空又拍云对象存储文件后,再次使用upx sync同步出错的问题。

最近使用又拍云的upx工具同步数据的时候,不小心同步了一些没用的文件,一个一个删除比较麻烦,所以希望一次行清空对象存储中所有的内容,再重新同步文件。但是出现了一个问题:通过网页端清空所有文件后,再次使用upx sync同步时,发现虽然upx工具显示同步成功,但内容实际并没有同步上去。

先说说对象存储

说upx工具之前,先说说对象存储。我们自己搭建一个静态的网站,常用的方式是有下面两种:

  1. 自己租用服务器,备案后在服务器上用apache之类开一个Web服务把网站文件放上去,最后为了追求访问速度,可以再套一个CDN。

这样有什么问题呢?首先,大部分的网站作者,没有精力去维护服务器的安全,我本身是做网络安全的,每天网络中有大量漏洞探测和利用行为,开一个80端口是相当危险的一种行为。

  1. 把网站托管到gitee、github、netlify等平台,追求速度的话,可以再往外面套一个CDN(国内的CDN服务基本都需要备案才可以使用)。

这样有什么问题呢?CDN回源也是需要时间的,如果放到github之类的外国平台,回源速度慢,也会影响访问速度。

对象存储有什么用呢?对象存储其实是云服务商为网站等应用提供的存储服务,通常都会支持HTTP/HTTPS访问。比如我在使用的又拍云对象存储(又拍云的对象存储和其CDN服务做了深度的整合),只需把网站存到又拍云的对象存储中,就自动开启了又拍云的CDN服务,访问速度非常快,所以目前本站的搭建流程是:

  1. 在又拍云上开通对象存储服务,绑定好自己做过备案的域名。
  2. 更新文章或者更新网站时,在本地生成网站的静态文件后,丢到又拍云的对象存储空间即可。

upx工具是干什么的

那么如果我们想使用对象存储,问题就来了,怎么把我们的博客同步到对象存储中呢?以又拍云为例,可以使用网页直接上传、REST API、FORM API、FTP以及upx等多种方式将本地文件上传到对象存储。

upx是又拍云官方提供的工具,可以使用命令行可以实现文件上下传、增量文件同步、目录创建删除、文件删除(包括异步文件批量删除)。

相比于其他的方式,我认为upx工具的亮点是增量文件同步,非常方便。因为随着存储的内容越来越多,全量的上传时间很长,而类似网站更新的场景,需要比对文件变化,删除云端不一样的文件,把本地不一样的传上去,不借助工具非常麻烦。

upx命令格式:

upx [global options] command [command options]

常用的几个upx命令:

  • 登录又拍云服务:upx login <bucket> <operator> <operator_password>
    • <bucket> :服务名
    • <operator>:操作员
    • <operator_password>:操作员的密码
  • 显示当前目录(云端)中的文件和目录信息:upx ls
  • 上传文件:upx put <本地路径> <云存储路径>
  • 增量文件同步:upx sync <本地目录> <云存储目录> -v
    • 该命令与rsync类似,但我没有实际测过,一直都是不带什么参数直接用的
  • 使用upx工具同步几轮文件
  • 使用网页、FTP等方式,清空对象存储空间
  • 再次使用upx工具同步文件

提交了工单,客服的答复是:

upx 的 sync 仅用作增量同步,也就是只本地比对上次同步到云存储空间后新增的本地文件。在 upx 所在的账户的 HOME 目录下,有一个 .upx.db 的隐藏目录,其中包含同步的文件记录。您将其删除后,sync 同步的记录会进行重置。

所以,upx的sync,其实是在本地做了一个缓存,记录上一次同步了哪一些文件,在本地做相关的比对,上传出现变动的文件,并不会和保存在云端的文件做比对。所以也就好理解了,虽然删除了云端的文件,但是本地的同步记录没有变动,自然就出现了问题,

解决的方式很简单,直接删除HOME 目录下 隐藏的.upx.db 文件夹即可。

一个挺简单的问题,但是没经历过,还就真不知道是咋回事儿,先记录下来吧。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK