七牛云对象存储使用 qshell 批量管理文件存储类型(实战教程)

七牛云对象存储使用 qshell 批量管理文件存储类型(实战教程)

一、适用场景说明

本教程适用于以下典型场景:

    • 存储桶中存在 低频 / 智能分层 / 归档 / 归档直读 / 深度归档 文件
    • 需要 批量解冻深度归档文件
    • 解冻完成后,统一转回标准存储
    • 文件数量较多(几千~几十万)
    • 需要 可恢复、可记录、可重试 的 CLI 操作方案

二、前置条件

1️⃣ 准备 qshell

下载地址:https://github.com/qiniu/qshell/releases

chmod +x qshell

确认版本(建议记录):

./qshell version
root@ubuntu:~# ./qshell version
v2.17.0
root@ubuntu:~# 

2️⃣ 七牛云 AccessKey / SecretKey

确保账号具备以下权限(至少):

    • 对象存储 Bucket 管理权限
    • 文件解冻
    • 文件存储类型变更

三、qshell 鉴权配置

命令格式

./qshell account <AK> <SK> <AccountName>

成功后配置会写入:

~/.qshell/account.json

四、导出非标准存储对象清单

存储类型枚举值(非常重要)

FileType 含义
0 标准存储
1 低频存储
2 归档存储
3 深度归档存储
4 归档直读
5 智能分层

导出所有非标准存储对象

./qshell listbucket2 <Bucket> \
  --file-types 1,2,3,4,5 \
  --show-fields Key,FileType \
  -o non_standard_objects.tsv

输出示例(TSV):

1721127498013.0708.MOV	3
2024-07-05-6686ca2981a6d.jpg	3
xxx.pdf	2

五、筛选“深度归档”文件 Key 列表

只保留 FileType = 3(深度归档)

awk -F'\t' '$2==3 {print $1}' non_standard_objects.tsv > deep_archive_keys.txt

检查数量:

wc -l deep_archive_keys.txt

六、解冻深度归档存储(batchrestorear)

命令说明

qshell batchrestorear <Bucket> <FreezeAfterDays>
    • ​FreezeAfterDays​:解冻后保持可访问天数(1–7)
    • 输入文件:仅包含 Key,一行一个
    • 支持断点记录、失败重试

解冻命令(推荐生产参数)

./qshell batchrestorear <Bucket> 7 \
  -i deep_archive_keys.txt \
  -y \
  --enable-record \
  -s deep_restore_success.txt \
  -e deep_restore_failure.txt

⚠️ 解冻是异步的,通常需要:

    • 归档:分钟级
    • 深度归档:数小时

七、确认解冻状态

单文件验证(可选)

./qshell stat <Bucket> 1721127498013.0708.MOV

是否“真的可转标准”,以控制台是否允许修改为准

八、解冻后 → 转换为标准存储(关键步骤)

⚠️ 重要说明(本次问题核心)

你当前 qshell 版本中:

​batchchtype​ 的输入文件必须是:Key + 目标 FileType 的映射文件

而不是只写 Key。


1️⃣ 构造 Key → 标准存储(0)映射文件

awk '{print $0 "\t0"}' deep_archive_keys.txt > deep_archive_to_standard.tsv

文件示例:

1721127498013.0708.MOV	0
2024-07-05-6686ca2981a6d.jpg	0

分隔符必须是 TAB


2️⃣ 执行批量转换存储类型

./qshell batchchtype <Bucket> \
  -i deep_archive_to_standard.tsv \
  -y \
  --enable-record \
  -s ch_type_success.txt \
  -e ch_type_failure.txt

九、验证转换结果

./qshell stat <Bucket> 1721127498013.0708.MOV

期望结果:

FileType: 0 -> 标准存储

控制台中“存储类型”显示为:标准存储


十、常见错误与排查

❌ 报错:need more than one param​

原因:

    • ​batchchtype​ 输入文件中只有 Key
    • 缺少目标 FileType 列

解决:

Key<TAB>0

❌ batchrestorear 卡住 / Total=0

原因:

    • 输入文件方式错误
    • 未使用 -i​
    • 误用 stdin

解决:

始终使用:

-i file.txt

十一、推荐生产实践

    • ✔ 使用 –enable-record​
    • ✔ 保留 success / failure 文件
    • ✔ 转换完成后调整生命周期规则,避免再次转归档
    • ✔ 大批量(>10 万)建议拆批执行

十二、流程总结(一句话版)

listbucket2 → 筛选深度归档 → batchrestorear 解冻 →构造 Key+0 映射 → batchchtype 转标准 → stat 校验

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/12360

赞 (0)
郭靖的头像郭靖
上一篇 2025年6月14日 下午5:59
下一篇 2026年2月2日 下午10:33

相关推荐

  • mysql之两个db实例中有两个表对比

    两个db实例中有两个表对比要确定两个数据库实例中的两个表是否存在差异,你需要比较这两个表的所有数据。这个过程可以通过多种方法实现,以下是几个常见的方法: SQL查询比较如果两个数据库相互可访问(例如,通过数据库链接),你可以编写SQL查询来比较它们的数据。以下是一个简单的例子,演示如何比较两个表的数据: 如果这些查询返回任何行,那么这些行就是两个表之间的差异…

    2024年7月4日
    3.8K00
  • Kswapd0挖矿病毒查杀

    机器负载异常,刚重启过后CPU占用就快速上升至接近100%,且存在网络滥用的情况。使用top显示kswapd0进程疯狂占用cpu,google后有人说是linux虚拟内存的问题,但是系统刚开机,内存基本空闲,只是cpu疯狂被占用,这种说法明显有问题,继续排查后,我发现这个程序和一个名叫WachtdogsMiner的挖矿蠕虫和两个荷兰IP有关 查找病毒 使用t…

    2022年6月25日
    1.9K00
  • Ubuntu系统如何配置镜像源

    我们在使用Linux系统时,一般来说都是需要配置一个源地址才能直接使用下载的命令来安装软件的,若你购买的是云服务器,正常来讲是服务器厂商配置好了源的,但是也不缺乏有少量的机器源会出现问题,导致安装软件不成功,如下图所示,那么我们就需要手动去配置了 第一步:替换原有的源 第二步:安装证书 如果安装失败,重新安装即可

    2022年6月14日
    2.0K00
  • Centos7.9下宝塔部署点可云进销存系统

    1、宝塔安装 见Centos7.6下宝塔安装及资产管理系统部署 2、安装环境 3、源码获取 4、系统部署 1、上传文件并解压 2、创建站点指向子目录 3、配置伪静态 4、配置数据库信息 直接输入 http://www.你的网址.com/install/ 然后输入你的数据库信息 至此 安装完成,默认账户密码:admin / admin888

    2023年2月14日
    2.6K00
  • Centos7删除多余的内核

    Linux下可能会存在有多个内核的情况,通过某一内核启动会出现无法登录的情况,这时我们就要选择可以正常登录的内核,成功进入系统后,将多余的内核删除 检查系统中的内核 使用yum remove 或rpm -e 删除无用内核

    2022年6月25日
    2.2K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信