利用qshell来整理七牛云上面的文件

最近为了测试能否在七牛云上面搭建Pandorabox的私有源,于是将整个源的文件夹上传到了‘blog’的bucket中,结果测试发现无法达成自己的目的,所以只能想办法将将这些不需要的数据删除。另外腾讯云的对象存储好像可以搭建静态站点,也就是说我们访问一个资源时如果是网页的话会在浏览器中展示而不是下载,如果成功了可以在后续的博客中分享出来。


七牛云命令行工具说明文档:https://developer.qiniu.com/kodo/tools/1302/qshell
qshell下载地址:http://devtools.qiniu.com/qshell-v2.1.8.zip

我是在Mac上面操作的,所以我需要使用的qshell是‘qshell_darwin_x64’。


在本机设置秘钥

为了拥有自己Bucket的操作权限,首先需要设置自己七牛云的秘钥信息,在自己个人面板的'秘钥管理'中就可以找到‘ak’与‘sk’。

接着在控制台中执行如下命令(根据平台更换qshell所对应的命令名称,将ak、sk换成秘钥管理中的AK、SK)。

qshell account ak sk

备份指定bucket中的文件

该命令的使用非常简单,主要是需要自己先准备一个配置文件。

{
    "dest_dir"   :   "/Users/chenxianglong/Documents/qiniu_blog",
    "bucket"     :   "blog",
    "cdn_domain" :   "itgrocery.cn",
    "log_file"   :   "download.log",
    "log_level"  :   "info",
    "log_rotate" :   1,
    "log_stdout" :   false
}

根据七牛云的文档如果不设置‘cdn_domain’则需要支付流量费用。但是我Bucket强制开启了https,也支付了一定的流量费用,好在文件不多才四五毛钱的费用。上面比较重要的配置有'dest_dir',这个是本地用来存储Bucket文件的文件夹,'bucket'是自己需要同步的bucket,‘cdn_domain’是自己bucket的域名。如果自己没有绑定自定义域名那么应该使用七牛云给你的测试域名。后面几个'log'开头的配置是日志相关的,对文件备份没有影响,如果出现问题放我们进行排查。

准备好配置文件之后就可以执行进行文件的备份,也就是将bucket中的文件下载到本地指定的文件夹。

qshell qdownload [<ThreadCount>] <LocalDownloadConfig>

ThreadCount:线程数,取值范围在1-2000,如果不在这个范围内,默认为5。
LocalDownloadConfig:配置文件的路径,我用的是绝对路径。

上面的配置文件比较简单,官方文档中给出了很多同步的规则,比如定义文件的前缀、后缀等。但我的文件命名比较杂乱所以我上面的配置会把所有的文件都同步下来,我想在本地筛选之后再同步到七牛云上。

更多操作请查阅官方文档:https://github.com/qiniu/qshell/blob/master/docs/qdownload.md

批量删除bucket中的所有文件

七牛云并没有给我们提供直接执行批量操作的命令,我们需要分两步进行,首先将bucket中的文件列表写入到本地的一个文件中,然后根据这个文件进行批量删除操作。

  • 保存bucket中的文件列表到本地
qshell listbucket if-pbl if-pbl.list.txt
  • 删除指定列表中的文件
qshell batchdelete -force if-pbl if-pbl.list.txt

更多操作请查阅官方文档:https://github.com/qiniu/qshell/blob/master/docs/batchdelete.md

上传指定文件夹中的所有文件

与备份文件一样上传文件也需要配置文件,下面列出来的配置文件是上传指定文件夹中的所有文件。

{
   "src_dir"            :   "/Users/chenxianglong/Documents/qiniu_blog",
   "bucket"             :   "blog",
   "delete_on_success"  : true
}

上面配置中'src_dir'指定的是需要上传的文件夹,'bucket'对应七牛云中的bucket,'delete_on_success'的作用是如果如果上传成功则删除本地的文件。

准备好配置文件后按下面的格式执行命令:

qshell qupload [<ThreadCount>] <LocalUploadConfig>

更多操作请查阅官方文档:https://github.com/qiniu/qshell/blob/master/docs/qupload.md


附:以前使用过很多Atom以及Intellij IDEA发现都不太完美,也使用过MWeb,因为没有Git项目的管理功能所以放弃了(MWeb支持发布脚本,主要是自己不熟悉Git的命令)。最近发现MWeb的的写作体验确实是最好的,图床的功能也集成了七牛云,非常适合写静态博客,希望这一次黑色星期五可以再次半价打折😁,那时我肯定入正。腾讯云也有云对象存储,而且使用https还是免费的,网上也有呼声让MWeb集成腾讯云,如果有这个功能到到时候再把图片迁移到腾讯云吧!静态博客的好处是方便迁移,不会把图片绑定在特定的平台上。


发表评论

电子邮件地址不会被公开。 必填项已用*标注