irc_dicom_service/app/service/oss.js

68 lines
1.9 KiB
JavaScript

"use strict";
const Service = require("egg").Service;
const OSS = require('ali-oss');
function fileToBlob(file) {
// 创建 FileReader 对象
let reader = new FileReader();
return new Promise(resolve => {
// FileReader 添加 load 事件
reader.addEventListener('load', (e) => {
let blob;
if (typeof e.target.result === 'object') {
blob = new Blob([e.target.result])
} else {
blob = e.target.result
}
resolve(blob)
})
// FileReader 以 ArrayBuffer 格式 读取 File 对象中数据
reader.readAsArrayBuffer(file)
})
}
class ImageService extends Service {
/**
* 保存图片
* @param {*} showPath 图片展示路径
* @param {*} dicomInfo dicom信息
* @param {*} user_id user_id
*/
async downloadImage(path, osPath, config) {
try {
const client = new OSS({
region: config.region,
accessKeyId: config.accessKeyId,
accessKeySecret: config.accessKeySecret,
bucket: config.bucket
});
const result = await client.get(path, osPath);
return result
} catch (e) {
console.log(e)
}
}
async dcmUpload (name, file, config){
const client = new OSS({
region: config.region,
accessKeyId: config.accessKeyId,
accessKeySecret: config.accessKeySecret,
bucket: config.bucket
});
return new Promise(async resolve => {
try {
let res = await client.put(name, file)
resolve({
...res,
})
} catch (e) {
resolve(false)
console.log(e)
}
})
}
}
module.exports = ImageService;