wiz-frameworks
Version:
wizlong react framework
205 lines (183 loc) • 8.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
* ossFileUtils oss文件工具类
* @author mll
* @date 2020-04-27
*/
var _tool = require('../../tool');
var _aliOss = require('ali-oss');
var _aliOss2 = _interopRequireDefault(_aliOss);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var Session = _tool.utils_tool.Session;
/**
* 根据后缀获取oss完整地址
* @param {*} suffix
*/
var getOssUrlBySuffix = function getOssUrlBySuffix(suffix) {
var access = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
if (!suffix && suffix === '') {
return '';
}
if (access && suffix) {
var ali = Session.get(constants.env.sys_ali_key);
if (ali) {
var oss = new _aliOss2['default']({
accessKeyId: Base64.decode(ali['akId']),
accessKeySecret: Base64.decode(ali['aks']),
endpoint: constants.env.sys_ali_endpoint,
bucket: constants.env.sys_ali_bucket,
stsToken: ali['stoken']
});
return oss.signatureUrl(suffix, {
expires: 3600,
method: 'GET',
process: process
});
} else {
return '';
}
}
return 'http://' + constants.env.sys_ali_bucket + '.' + constants.env.sys_ali_region + '.aliyuncs.com/' + suffix;
};
var getOssFile = function getOssFile(fileId, fileOriginalName, fileType, fileSize, fileUri) {
var access = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
var url = void 0;
var uploadWay = constants.env.sys_upload_way || 'Oss';
if (uploadWay === 'S3') {
url = getS3FileById(fileId, fileType);
} else {
url = getOssUrlBySuffix(fileUri, access);
}
return {
fileId: fileId,
fileNewName: new Date().getTime(),
fileOriginalName: fileOriginalName,
fileType: fileType,
name: fileOriginalName,
percent: 100,
size: fileSize,
status: "done",
sysUrl: fileUri,
thumbUrl: url,
url: url
};
};
/**
* 获取图片地址,支持处理缩放、水印、格式转换等各种的方法
* 详见:https://help.aliyun.com/document_detail/64054.html?spm=a2c4g.11186623.6.1331.4996412fvtw9tZ
* @param {*} fileParams
* @param {*} imgHandle
*/
var getOssImgFile = function getOssImgFile() {
var fileParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var imgHandle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var fileId = fileParams.fileId,
fileOriginalName = fileParams.fileOriginalName,
fileType = fileParams.fileType,
fileSize = fileParams.fileSize,
fileUri = fileParams.fileUri,
access = fileParams.access;
var process = '';
if (imgHandle && Object.keys(imgHandle).length) {
process = 'image';
Object.keys(imgHandle).forEach(function (key) {
process += '/' + key + ',' + imgHandle[key];
});
}
var url = getOssUrlBySuffix(fileUri, access, process);
return {
fileId: fileId,
fileNewName: new Date().getTime(),
fileOriginalName: fileOriginalName,
fileType: fileType,
name: fileOriginalName,
percent: 100,
size: fileSize,
status: "done",
sysUrl: fileUri,
thumbUrl: url,
url: url
};
};
/**
* 根据resize获取oss图片
* @param {*} fileParams
* @param resize内参数开始
* @param {*} m
* 指定缩略的模式:
lfit:等比缩放,限制在指定w与h的矩形内的最大图片。
mfit:等比缩放,延伸出指定w与h的矩形框外的最小图片。
fill:固定宽高,将延伸出指定w与h的矩形框外的最小图片进行居中裁剪。
pad:固定宽高,缩略填充。
fixed:固定宽高,强制缩略。
* @param {*} w 指定目标缩略图的宽度。
* @param {*} h 指定目标缩略图的高度。
* @param {*} l 指定目标缩略图的最长边。
* @param {*} s 指定目标缩略图的最短边。
* @param {*} limit 指定当目标缩略图大于原图时是否处理。值是 1 表示不处理;值是 0 表示处理。
* @param {*} color 当缩放模式选择为 pad(缩略填充)时,可以选择填充的颜色(默认是白色)参数的填写方式:采用 16 进制颜色码表示,如 00FF00(绿色)。
* @param resize内参数结束
* @param {*} isJpg 格式转换,默认转换成jpg
*/
var getOssImgResize = function getOssImgResize() {
var fileParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var resize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var isJpg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var _fileParams = _extends({ access: true }, fileParams);
return getOssImgFile(_fileParams, {
resize: _splicing(resize),
format: isJpg ? 'jpg' : ''
});
};
/**
* 根据resize获取oss图片的地址
* @param {*} fileParams
* @param {*} resize
* @param {*} isJpg
*/
var getOssImgResizeUrl = function getOssImgResizeUrl(fileUri) {
var resize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var isJpg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
return getOssImgResize({ fileUri: fileUri, access: true }, resize, isJpg)['thumbUrl'];
};
var _splicing = function _splicing() {
var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var r = '';
Object.keys(s).forEach(function (k) {
if (s[k]) {
r += k + '_' + s[k] + ',';
}
});
if (r && r.length) {
r.substring(0, r.length - 1);
}
return r;
};
var getS3FileById = function getS3FileById(fileId) {
var mimeType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var maxPixel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.env.image_max_pixel;
var url = '';
if (getOssFilePath) {
url = getOssFilePath(fileId);
} else if (constants.urls.kUrlLinkPath) {
url = constants.urls.kUrlLinkPath + '/' + fileId;
} else {
var filePathHeader = constants.env.env_host && constants.env.env_host !== '' ? constants.env.env_host : window.location.origin + '/link';
url = filePathHeader + '/link-server/' + fileId;
}
var type = void 0;
['image', 'jpg', 'png', 'jpeg', 'ipeg', 'gif', 'bmp'].forEach(function (item) {
if (mimeType.indexOf(item) !== -1) type = 'img';
});
if (type === 'img') {
var pixel = maxPixel && maxPixel > 1 ? Math.min(maxPixel, 4096) : 600;
url += '?process=image/resize,w_' + pixel + ',h_' + pixel;
}
return url;
};
exports['default'] = { getOssUrlBySuffix: getOssUrlBySuffix, getOssFile: getOssFile, getOssImgResize: getOssImgResize, getOssImgFile: getOssImgFile, getOssImgResizeUrl: getOssImgResizeUrl, getS3FileById: getS3FileById };
module.exports = exports['default'];