oss-upload-browser
Version:
oss-browser文件上传
87 lines (72 loc) • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _fileMd = require("./file-md5");
var OSS = require('ali-oss');
var ossClient; //小文件上传
var put_upload = function put_upload(_ossConfig, _resolve) {
ossClient.put("".concat(_ossConfig.folder, "/").concat(_ossConfig.filename), _ossConfig.fileObj).then(function (uploadResponse) {
if (uploadResponse.res.status === 200) {
_resolve({
status: 200,
data: uploadResponse.url.replace(/http:/, "https:")
});
} else {
_resolve({
status: 400,
data: ''
});
}
;
});
}; // 大文件分片上传
var multipart_upload = function multipart_upload(_ossConfig, _resolve) {
ossClient.multipartUpload("".concat(_ossConfig.folder, "/").concat(_ossConfig.filename), _ossConfig.fileObj, {
progress: function progress(p) {
_resolve({
status: 300,
data: p * 100
});
},
partSize: 5 * 1024 * 1024
}).then(function (uploadResponse) {
if (uploadResponse.res.status === 200) {
_resolve({
status: 200,
data: "".concat(_ossConfig.bucket).concat(uploadResponse.name)
});
} else {
_resolve({
status: 400,
data: ''
});
}
});
}; // 传入oss配置、oss bucket、oss目标文件夹、File对象
var ossUpload = function ossUpload(inputObj) {
return new Promise(function (resolve) {
var ossConfig = {
bucket: "https://".concat(inputObj.license.bucket, ".").concat(inputObj.license.region, ".aliyuncs.com"),
folder: inputObj.folder,
fileObj: inputObj.fileObj
};
try {
ossClient = new OSS(inputObj.license);
} catch (err) {
console.error("Error: oss init file,please check your oss config");
} // 将文件的MD5值设为文件名
(0, _fileMd.fileMd5)(inputObj.fileObj, function (err, md5Result) {
try {
if (err) throw err;
ossConfig['filename'] = "".concat(md5Result, ".").concat(inputObj.hasOwnProperty('extension') && inputObj.extension ? inputObj.extension : inputObj.fileObj.type.slice(inputObj.fileObj.type.search(/\//) + 1)); // 根据文件大小选择上传方式
inputObj.fileObj.size < 20 * 1024 * 1024 ? put_upload(ossConfig, resolve) : multipart_upload(ossConfig, resolve);
} catch (err) {
console.error(err);
}
});
});
};
var _default = ossUpload;
exports["default"] = _default;