美文网首页
七牛归档存储内容迁至标准存储的处理

七牛归档存储内容迁至标准存储的处理

作者: huk | 来源:发表于2023-05-06 20:34 被阅读0次

这个需求是由于公司里对某个空间误设置了生命周期,随着时间流逝很多文件请求不到了,关了生命周期后,之前赋予过生命周期的那些文件还是会把流程走下去,所以在稳定后需要做一次数据的搬迁。

修改的方式有几种:
第一种是七牛提供了可视化操作工具,可以让没有开发经验的人也能做修改,但按我同事的说法是很卡很卡难以操作(因为我们这个空间文件数挺多的,大概百万的文件数),我没有去尝试
第二种是七牛提供的qshell指令,具体文档 https://developer.qiniu.com/kodo/1302/qshell ,我没有使用这个的原因是,浅试了一下可以实现需求,但是list导出的文件列表格式和解冻、修改存储类型时导入文件需要的格式有差别,实际跑的时候那么大量的数据要手改的话不现实(但是qshell的list好的地方是可以filter文件存储状态和时间,可以快速导出你具体想找的文件列表)
把试用的命令贴出来以供参考:

// 导出列表
sudo ./qshell listbucket2 --start 2022-10-10 --end 2022-10-12 --storages 2 --show-fields Key,StorageType as-prod -o list.txt
// 批量解冻7天
./qshell batchrestorear as-prod 7 -i list.txt
// 批量修改存储类型
./qshell batchchtype as-prod -i list.txt

第三种是我现在使用的方式,node sdk
文档:https://developer.qiniu.com/kodo/1289/nodejs
本地起一个koa的服务,安装七牛提供的nodesdk库,按照文档配置auth,listPrefix的参数没有看到日期、当前存储类型之类的filter,我目前就只能把整个空间遍历一遍,找到归档的文件先解冻,由于解冻需要时间,所以先跑一遍做解冻,再跑一遍做存储类型修改,整体比较耗时间。
下面是具体的代码,解冻和修改两个步骤写一起了,用的时候自己切换下注释,我图省力直接放在根路由下操作了,记得把代码改好了再打开服务。

const router = require('koa-router')()
const qiniu = require('qiniu')
const {logger} = require('../logs');
// 配置你的auth相关信息
const mac = new qiniu.auth.digest.Mac(xxx, xxx);
const config = new qiniu.conf.Config();
config.zone = qiniu.zone.Zone_z0;

const bucketManager = new qiniu.rs.BucketManager(mac, config);

router.get('/', async (ctx, next) => {
    limitList(null, true);
    await ctx.render('index', {
        title: 'Hello Koa 2!'
    })
})
// 你的空间名
const bucket = 'xxxbucket';
let count = 0;
let restoreCount = 0;
function limitList(marker, isFirst) {
    if (!isFirst) {
        if (!marker) {
            logger.error('无marker,结束!!!!!!共执行个数:' + restoreCount);
            return
        }
    }
    const options = { limit: 1000 };
    if (marker) {
        options['marker'] = marker;
    }
    bucketManager.listPrefix(bucket, options, (err, res) => {
        if (!err) {
            const marker = res.marker;
            const data = res.items;
            for (let i = 0; i < data.length; i++) {
                const fileItem = data[i];
                // 0标准 1低频 2归档
                if (fileItem.type === 2) {
                    // 用于修改文件存储类型
                    // bucketManager.changeType(bucket, fileItem.key, 0, (e) => {
                    //     if (e) {
                    //         logger.error('类型修改失败:' + fileItem.key + JSON.stringify(e));
                    //     } else {
                    //         restoreCount++;
                    //         logger.info('类型修改成功:' + fileItem.key);
                    //     }
                    // })

                    // 用于解冻
                    const entry = bucket + ":" + fileItem.key;
                    bucketManager.restoreAr(entry, 7, (e) => {
                        if (e) {
                            logger.error('执行解冻失败:' + entry + JSON.stringify(e));
                        } else {
                            restoreCount++;
                            logger.info('执行解冻:' + entry);
                        }
                    })
                }
            }
            count += 1000;
            logger.info('---------已经遍历条目数量:' + count + '执行成功数量:' + restoreCount + '---------');
            limitList(marker, false)
        } else {
            console.log('error:' + err)
        }
    })
}
module.exports = router

相关文章

  • 七牛云WordPress插件-节省带宽,加速网站

    七牛云存储是由七牛提供的在线存储服务,和传统的云存储服务(如 Amazon S3)不同,七牛云存储还增加了上传下载...

  • iOS数据存储

    iOS开发中数据存储有两类:一、存储为文件 如归档、解归档、plist文件存储及偏好设置都是存储为文件二、存储到...

  • pdf文档转换成图片 | 七牛云存储

    office文档转换(odconv) | 七牛云存储 office文档转换(odconv) 描述七牛云存储支持直接...

  • 用七牛云共享产品原型方法

    本文基于window,其他系统参考官方说明 准备工作 注册七牛云账号:云存储首页 七牛云存储 - 移动时代的云存储...

  • 七牛存储之图片处理

    这里主要讲一下七牛存储的图片处理,在这之前可以先看一下七牛存储空间控制台的一些基本操作 控制台快速入门 上传完成...

  • 数据存储

    归档方法存储

  • 七牛云存储图片处理

    团队使用七牛存储很久了,但是七牛带的图片处理功能没用过,以下简单总结一下:全程使用postman测试: 原图地址h...

  • springboot+jpa+redis+quzartz+ela

    图片上传 图片存储在七牛云对象存储中,所以首先配置七牛云sdk pom.xml application.yml 七...

  • OC 数据归档

    数据归档作为一种轻量级的数据存储方式,和属性列表不同之处在于存储的对象广泛,几乎任何类型的对象都能被归档存储且存储...

  • .NET Core下集成 七牛云下的对象存储

    七牛云对象存储 .NET Core下集成 七牛云下的对象存储 开源地址 https://github.com/lu...

网友评论

      本文标题:七牛归档存储内容迁至标准存储的处理

      本文链接:https://www.haomeiwen.com/subject/upicsdtx.html