| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | 1× 1× 1× 3× 1× 1× 3× 3× 1× 3× 3× 9× 1× 3× 6× 6× 6× 6× 3× 3× 3× 6× 3× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× | "use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { Iif (f) throw new TypeError("Generator is already executing."); while (_) try { Iif (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; Iif (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: Eif (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } Iif (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetch = exports.refresh = exports.upload = void 0; var uuid = require('node-uuid'); var path = require('path'); var qiniu = require('qiniu'); var fnv = require('fnv-plus'); var v1 = uuid.v1(); var hash = "" + fnv.hash(v1, 64).str(); // 上传资源 function upload(config, localFile, key) { return __awaiter(this, void 0, void 0, function () { var mac, qnConfig, formUploader, putExtra, body, options, putPolicy, uploadToken; return __generator(this, function (_a) { mac = new qiniu.auth.digest.Mac(config.ak, config.sk); qnConfig = new qiniu.conf.Config(); qnConfig.zone = qiniu.zone[config.zone]; formUploader = new qiniu.form_up.FormUploader(qnConfig); putExtra = new qiniu.form_up.PutExtra(); body = { "key": "$(key)", "hash": "$(etag)", "fsize": "$(fsize)", "w": "$(imageInfo.width)", "h": "$(imageInfo.height)", "type": "$(mimeType)", "format": "$(imageInfo.format)", }; options = { scope: config.scope + ":" + key, returnBody: JSON.stringify(body) }; putPolicy = new qiniu.rs.PutPolicy(options); uploadToken = putPolicy.uploadToken(mac); console.log("[CDN Upload Start] \u4E0A\u4F20\u6587\u4EF6 \u5F00\u59CB"); return [2 /*return*/, new Promise(function (resolve, reject) { // 文件上传 formUploader.putFile(uploadToken, key, localFile, putExtra, function (respErr, respBody, respInfo) { Iif (respErr) { resolve(false); throw respErr; } Eif (respInfo.statusCode == 200) { console.log("[CDN Uploaded] " + respBody.key); console.log("[CDN Upload End] \u4E0A\u4F20\u6587\u4EF6 \u6210\u529F"); resolve(respBody); } else { console.log("[CDN Upload Error] \u4E0A\u4F20\u6587\u4EF6 \u5931\u8D25 statusCode:" + respInfo.statusCode); resolve(false); } }); })]; }); }); } exports.upload = upload; // 刷新资源 function refresh(config, list) { return __awaiter(this, void 0, void 0, function () { var mac, cdnManager; return __generator(this, function (_a) { mac = new qiniu.auth.digest.Mac(config.ak, config.sk); cdnManager = new qiniu.cdn.CdnManager(mac); console.log("[CDN Refresh Start] \u5237\u65B0\u7F51\u7EDC\u8D44\u6E90 \u5F00\u59CB"); return [2 /*return*/, new Promise(function (resolve, reject) { // 刷新链接,单次请求链接不可以超过100个,如果超过,请分批发送请求 cdnManager.refreshUrls(list, function (err, respBody, respInfo) { Iif (err) { console.log("[CDN Refresh Error] \u5237\u65B0\u7F51\u7EDC\u8D44\u6E90 \u5931\u8D25"); console.log('[Error]', err); console.log('[respInfo]', respInfo); resolve(false); } Eif (respInfo.statusCode == 200) { Iif (respBody.code === 200) { console.log("[CDN Refresh End] \u5237\u65B0\u7F51\u7EDC\u8D44\u6E90 \u6210\u529F"); resolve(respBody); } else { console.log("[CDN Refresh Error] \u5237\u65B0\u7F51\u7EDC\u8D44\u6E90 \u5931\u8D25"); console.log('[Error]', err); console.log('[respInfo]', respInfo); resolve(false); } } else { console.log("[CDN Refresh Error] \u5237\u65B0\u7F51\u7EDC\u8D44\u6E90 \u5931\u8D25"); console.log('[Error]', err); console.log('[respInfo]', respInfo); resolve(false); } }); })]; }); }); } exports.refresh = refresh; // 拉取网络文件 function fetch(config, url, key) { return __awaiter(this, void 0, void 0, function () { var qnMac, qnConfig, bucketManager; return __generator(this, function (_a) { qnMac = new qiniu.auth.digest.Mac(config.ak, config.sk); qnConfig = new qiniu.conf.Config(); qnConfig.zone = qiniu.zone[config.zone]; bucketManager = new qiniu.rs.BucketManager(qnMac, qnConfig); // const key = config.key console.log("[CDN Fetch Start] \u8F6C\u50A8\u7F51\u7EDC\u6587\u4EF6 \u5F00\u59CB"); return [2 /*return*/, new Promise(function (resolve, reject) { bucketManager.fetch(url, config.scope, key, function (err, respBody, respInfo) { Iif (err) { resolve(false); console.log("[CDN Fetch Error] \u8F6C\u50A8\u7F51\u7EDC\u6587\u4EF6 \u5931\u8D25"); console.log('[Error]', err); console.log('[respInfo]', respInfo); } else { Iif (respInfo.statusCode == 200) { console.log("[CDN Fetch] " + respBody.key); console.log("[CDN Fetch End] \u8F6C\u50A8\u7F51\u7EDC\u6587\u4EF6 \u6210\u529F"); resolve(__assign(__assign({}, respBody), { source: url })); } else { console.log("[CDN Fetch Error] \u8F6C\u50A8\u7F51\u7EDC\u6587\u4EF6 \u5931\u8D25"); console.log('[Error]', err); console.log('[respInfo]', respInfo); resolve(false); } } }); })]; }); }); } exports.fetch = fetch; |