UNPKG

t-comm

Version:

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

99 lines (96 loc) 3.26 kB
import { b as __awaiter, c as __generator } from '../../tslib.es6-096fffdd.js'; import { deleteCOSMultipleObject, getCOSBucketList } from './cos.mjs'; import './helper.mjs'; import '../../bite/format-bite.mjs'; 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 __awaiter(this, void 0, void 0, function () { var list, reg, toDeleteKeys; return __generator(this, function (_c) { switch (_c.label) { case 0: return [4 /*yield*/, 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*/, 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 __awaiter(this, void 0, void 0, function () { var list, keys, emptyKeys; return __generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, 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*/, deleteCOSMultipleObject({ secretId: secretId, secretKey: secretKey, bucket: bucket, region: region, keys: emptyKeys })]; case 2: return [2 /*return*/, _b.sent()]; } }); }); } export { deleteCOSEmptyFolder, deleteCOSLongAgoObject };