UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

104 lines (99 loc) 3.48 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../tslib.es6-01322ba9.js'); var tencentCloud_cos_cos = require('./cos.js'); require('./helper.js'); require('../../bite/format-bite.js'); function deleteCOSLongAgoObject(_a) { var secretId = _a.secretId, secretKey = _a.secretKey, bucket = _a.bucket, region = _a.region, prefix = _a.prefix, _b = _a.keepNumber, keepNumber = _b === void 0 ? 1 : _b; return tslib_es6.__awaiter(this, void 0, void 0, function () { var list, reg, toDeleteKeys; return tslib_es6.__generator(this, function (_c) { switch (_c.label) { case 0: return [4 /*yield*/, tencentCloud_cos_cos.getCOSBucketList({ secretId: secretId, secretKey: secretKey, bucket: bucket, region: region, prefix: prefix })]; case 1: list = _c.sent(); reg = new RegExp("^".concat(prefix, "[^/]*$")); // 排除文件夹、子文件夹中内容 list = list.filter(function (item) { return !item.Key.endsWith('/') && reg.test(item.Key); }); list.sort(function (a, b) { return new Date(b.LastModified).getTime() - new Date(a.LastModified).getTime(); }); toDeleteKeys = list.slice(keepNumber).reduce(function (acc, item) { acc.push(item.Key); return acc; }, []); console.log('[deleteCOSLongAgoObject] toDeleteKeys: ', toDeleteKeys); if (!(toDeleteKeys === null || toDeleteKeys === void 0 ? void 0 : toDeleteKeys.length)) return [2 /*return*/]; return [4 /*yield*/, tencentCloud_cos_cos.deleteCOSMultipleObject({ secretId: secretId, secretKey: secretKey, bucket: bucket, region: region, keys: toDeleteKeys })]; case 2: return [2 /*return*/, _c.sent()]; } }); }); } function deleteCOSEmptyFolder(_a) { var secretId = _a.secretId, secretKey = _a.secretKey, bucket = _a.bucket, region = _a.region, prefix = _a.prefix; return tslib_es6.__awaiter(this, void 0, void 0, function () { var list, keys, emptyKeys; return tslib_es6.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, tencentCloud_cos_cos.getCOSBucketList({ secretId: secretId, secretKey: secretKey, bucket: bucket, region: region, prefix: prefix })]; case 1: list = _b.sent(); keys = list.map(function (item) { return item.Key; }); emptyKeys = keys.filter(function (item) { return item.endsWith('/') && !keys.find(function (key) { return new RegExp("^".concat(item, ".+")).test(key); }); }); console.log('[deleteCOSEmptyFolder] emptyKeys: ', emptyKeys); return [4 /*yield*/, tencentCloud_cos_cos.deleteCOSMultipleObject({ secretId: secretId, secretKey: secretKey, bucket: bucket, region: region, keys: emptyKeys })]; case 2: return [2 /*return*/, _b.sent()]; } }); }); } exports.deleteCOSEmptyFolder = deleteCOSEmptyFolder; exports.deleteCOSLongAgoObject = deleteCOSLongAgoObject;