pbu-local-url
Version:
seentao local url-parse
55 lines (47 loc) • 1.28 kB
JavaScript
/**
* @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