七牛存储批量操作 qshell

2023年 1月 4日 25.9k 0

1. 下载工具 - qshell

qshell 是利用七牛文档上公开的 API 实现的一个方便开发者测试和使用七牛API服务的命令行工具,使用 Go 语言编写而成。目前该工具融合了七牛存储, CDN ,以及其他的一些七牛服务中经常使用到的方法对应的便捷命令。| 版本 | 支持平台 | 链接 | 更新日志 || ————- |:————-:| —–:|| qshell v2.0.7 | Linux (32, 64位,arm平台), Windows(32, 64位), Mac OSX(32, 64位) | 下载 | 查看|下载qshell命令zip包,解压。你会发现,里面有多个系统的qshell命令文件。选择适合自己系统的文件,重命名为qshell。为了任意目录都能使用qshell命令,建议将qshell文件拷贝至PATH中的某一个目录。比如,本人安装了GO,并将其bin目录加入了PATH,就直接qshell拷贝到C:/Go/bin/目录下即可。

2. 设置账号Key

新版的qshell需要将账户信息设置在单独的文件中。下面的Administrator,改为对应的账户名。key在七牛登录后页面的【个人面板】- 【秘钥管理】可以查看。旧版的qshell命令,key设置在命令的配置文件参数中。

1
2
3
4
5
C:\Users\Administrator\.qshell\account.json
{
    "access_key" : "**************************",
    "secret_key" : "**************************"
}

或者使用命令设置

1
qshell account [access_key] [secret_key]

3. 批量上传

命令格式: qshell qupload [并发数量] [配置文件名]

1
2
3
4
5
upload.conf
{
   "src_dir"            :   "D:\qiniu\upload_dir",
   "bucket"             :   "mybucket"
}
1
qshell qupload 20 upload.conf

上述命令的操作是,以每秒二十次的频率,上传D盘 qiniu/upload_dir 目录下的文件,至 bucket 名为 mybucket 下。比如,有文件 D:/qiniu/upload_dir/te/tex.txt,上传之后在 mybucket 下有文件 te/tex.txt ,目录结构会保留,更多设置请参考官方文档。Tips: 建议并发不要设置太高,会有文件遗漏上传。

4. 批量下载

命令格式: qshell qdownload [并发数量] [配置文件名]

1
2
3
4
5
6
7
8
down.conf
{
   "dest_dir"            :  "D:\qiniu\download_dir",
   "domain"             :   "http://xxx.com1.z0.glb.qiniucdn.com",  
   "bucket"             :   "mybucket",
   "prefix"             :   "test/" 
}
qshell  qdownload 20 down.conf

上述命令的操作是,以每秒二十次的频率,从http://xxx.com1.z0.glb.qiniucdn.com 空间的mybucket,下载全部以test/开头的文件,保存在本地的 D:/qiniu/download_dir 目录下。比如,在 mybucket 下有文件 test/te/tex.txt,下载之后会有 D:/qiniu/download_dir/test/te/tex.txt,目录结构会保留,更多设置请参考官方文档。

5. 批量删除

命令格式: qshell batchdelete [-force] [空间名] [保存待删除文件名的文本]删除操作无法恢复,执行 batchdelete 时,出于谨慎策略需要输入验证码。如果不想输入验证码,可以带上可选参数 -force。这里比较麻烦的是,如何获得[保存待删除文件名的文本]。

1
find my_dir -type f >file_name_list.txt

在 Linux 下可以直接使用 find 命令,在 Windows 下需要借助 Cygwin 执行 find 命令。本人实践时,先将需要操作的目录,通过 qdownload 命令下载到 download_dir 目录。然后,在download_dir 目录执行上述命令,导出 my_dir 目录下全部文件名列表。

1
2
3
4
5
6
7
8
# file_name_list.txt
my_dir/testapp/requirements.txt
my_dir/testapp/settings.py
my_dir/testapp/test_processes.py
my_dir/testapp/test_tasks.py
my_dir/testapp/__init__.py
my_dir/tests/test_stackless.py
my_dir/tests/__init__.py

最后执行 batchdelete 命令删除指定 bucket 的文件。这里就是删除 mybucket 下,上述file_name_list.txt中文件名对应文件。

1
qshell batchdelete  mybucket file_name_list.txt

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论