UNPKG

pbu-local-url

Version:

seentao local url-parse

55 lines (47 loc) 1.28 kB
/** * @description 用于处理文件存储服务器地址 */ //env 为环境参数 function replace(url,env) { var parse = require('url-parse'); // 处理文件地址 function handle(url) { if(!url){ return url } // 提取宽高 var reg = /h_(\d+),w_(\d+)/; // 若匹配则该图片需要裁剪 if (reg.test(url)) { return handleImg(url, RegExp.$2, RegExp.$1) } else { return handleFile(url) } } /** * 需要裁剪 * @param {string} url 文件地址 * @param {number} w 宽 * @param {number} h 高 * @return {[type]} */ function handleImg(url, w, h) { const isPublic = url.indexOf('-public') != -1 ? 'pbu-public' : 'pbu-private' url = url.replace('pbu-public/','') var urlInstance = parse(url, true); let pathname = `/unsafe/${w}x${h}/${isPublic}${urlInstance.pathname}`; return env.imgFixUrl + pathname } /** * 无需裁剪 * @param {string} url 文件地址 */ function handleFile(url) { const isPublic = url.indexOf('-public') != -1 ? 'publicUrl' : 'privateUrl' url = url.replace('pbu-public/','') var urlInstance = parse(url, true); return env[isPublic] + urlInstance.pathname } return handle(url) } module.exports = replace