七牛歸檔存儲(chǔ)內(nèi)容遷至標(biāo)準(zhǔn)存儲(chǔ)的處理

這個(gè)需求是由于公司里對(duì)某個(gè)空間誤設(shè)置了生命周期谋减,隨著時(shí)間流逝很多文件請(qǐng)求不到了艇肴,關(guān)了生命周期后激蹲,之前賦予過(guò)生命周期的那些文件還是會(huì)把流程走下去棉磨,所以在穩(wěn)定后需要做一次數(shù)據(jù)的搬遷。

修改的方式有幾種:
第一種是七牛提供了可視化操作工具学辱,可以讓沒(méi)有開(kāi)發(fā)經(jīng)驗(yàn)的人也能做修改乘瓤,但按我同事的說(shuō)法是很卡很卡難以操作(因?yàn)槲覀冞@個(gè)空間文件數(shù)挺多的,大概百萬(wàn)的文件數(shù))策泣,我沒(méi)有去嘗試
第二種是七牛提供的qshell指令衙傀,具體文檔 https://developer.qiniu.com/kodo/1302/qshell ,我沒(méi)有使用這個(gè)的原因是萨咕,淺試了一下可以實(shí)現(xiàn)需求统抬,但是list導(dǎo)出的文件列表格式和解凍、修改存儲(chǔ)類型時(shí)導(dǎo)入文件需要的格式有差別任洞,實(shí)際跑的時(shí)候那么大量的數(shù)據(jù)要手改的話不現(xiàn)實(shí)(但是qshell的list好的地方是可以filter文件存儲(chǔ)狀態(tài)和時(shí)間蓄喇,可以快速導(dǎo)出你具體想找的文件列表)
把試用的命令貼出來(lái)以供參考:

// 導(dǎo)出列表
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
// 批量修改存儲(chǔ)類型
./qshell batchchtype as-prod -i list.txt

第三種是我現(xiàn)在使用的方式发侵,node sdk
文檔:https://developer.qiniu.com/kodo/1289/nodejs
本地起一個(gè)koa的服務(wù)交掏,安裝七牛提供的nodesdk庫(kù),按照文檔配置auth刃鳄,listPrefix的參數(shù)沒(méi)有看到日期盅弛、當(dāng)前存儲(chǔ)類型之類的filter,我目前就只能把整個(gè)空間遍歷一遍叔锐,找到歸檔的文件先解凍挪鹏,由于解凍需要時(shí)間,所以先跑一遍做解凍愉烙,再跑一遍做存儲(chǔ)類型修改讨盒,整體比較耗時(shí)間。
下面是具體的代碼步责,解凍和修改兩個(gè)步驟寫一起了返顺,用的時(shí)候自己切換下注釋禀苦,我圖省力直接放在根路由下操作了,記得把代碼改好了再打開(kāi)服務(wù)遂鹊。

const router = require('koa-router')()
const qiniu = require('qiniu')
const {logger} = require('../logs');
// 配置你的auth相關(guān)信息
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('無(wú)marker振乏,結(jié)束!1恕;塾省!V勐健误澳!共執(zhí)行個(gè)數(shù):' + 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標(biāo)準(zhǔn) 1低頻 2歸檔
                if (fileItem.type === 2) {
                    // 用于修改文件存儲(chǔ)類型
                    // 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('執(zhí)行解凍失斍厍:' + entry + JSON.stringify(e));
                        } else {
                            restoreCount++;
                            logger.info('執(zhí)行解凍:' + entry);
                        }
                    })
                }
            }
            count += 1000;
            logger.info('---------已經(jīng)遍歷條目數(shù)量:' + count + '執(zhí)行成功數(shù)量:' + restoreCount + '---------');
            limitList(marker, false)
        } else {
            console.log('error:' + err)
        }
    })
}
module.exports = router
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脓匿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宦赠,更是在濱河造成了極大的恐慌陪毡,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勾扭,死亡現(xiàn)場(chǎng)離奇詭異毡琉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)妙色,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門桅滋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人身辨,你說(shuō)我怎么就攤上這事丐谋【饴辏” “怎么了膀跌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)救欧。 經(jīng)常有香客問(wèn)我定庵,道長(zhǎng)吏饿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任蔬浙,我火速辦了婚禮猪落,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畴博。我一直安慰自己笨忌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布俱病。 她就那樣靜靜地躺著官疲,像睡著了一般杂曲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袁余,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天擎勘,我揣著相機(jī)與錄音,去河邊找鬼颖榜。 笑死棚饵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掩完。 我是一名探鬼主播噪漾,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼且蓬!你這毒婦竟也來(lái)了欣硼?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恶阴,失蹤者是張志新(化名)和其女友劉穎诈胜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體冯事,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焦匈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昵仅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缓熟。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摔笤,靈堂內(nèi)的尸體忽然破棺而出够滑,到底是詐尸還是另有隱情,我是刑警寧澤吕世,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布彰触,位于F島的核電站,受9級(jí)特大地震影響寞冯,放射性物質(zhì)發(fā)生泄漏渴析。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一吮龄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咆疗,春花似錦漓帚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)毡们。三九已至,卻和暖如春昧辽,著一層夾襖步出監(jiān)牢的瞬間衙熔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工搅荞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留红氯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓咕痛,卻偏偏與公主長(zhǎng)得像痢甘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茉贡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容