12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import ObsClient from "esdk-obs-browserjs/src/obs";
- export const uploadToOBS = async(file,progressCallback,type) => {
- try {
- const obsClient = new ObsClient({
- access_key_id: process.env.VUE_APP_OBS_ACCESS_KEY_ID,
- secret_access_key: process.env.VUE_APP_OBS_SECRET_ACCESS_KEY,
- server: process.env.VUE_APP_OBS_SERVER
- });
- let fileName = file.name || ""
- const upload_file_name = new Date().getTime() + '.' + fileName.split(".")[fileName.split(".").length - 1];
- let date = new Date()
- let year = date.getFullYear()
- let month = date.getMonth() + 1
- let strDate = date.getDate()
- let uploadDay = `${year}${month}${strDate}`
- let videoKey = `userVideo/${uploadDay}/${upload_file_name}`
- let courseKey = `course/${uploadDay}/${upload_file_name}`
- let key = type ===1 ? courseKey : videoKey;
- var callback = function (transferredAmount, totalAmount, totalSeconds) {
- // 获取上传进度百分比
- const progress = parseInt(transferredAmount * 100.0 / totalAmount);
- console.log("OBS上传进度=========>",progress);
- if (progressCallback) {
- progressCallback(progress);
- }
- };
- return new Promise((resolve, reject) => {
- //上传对象
- obsClient.putObject({
- Bucket: process.env.VUE_APP_OBS_BUCKET,//桶名称
- Key: key,//文件名
- Body: file,
- ProgressCallback: callback,//进度回调
- }, (err, result) => {
- if(err){
- reject(err);
- console.error('Error-->' + err);
- }else{
- // 将上传的key包含在返回的数据中
- const a = {
- ...result,
- urlPath: key
- };
- console.log('上传成功', a);
- resolve(a);
- }
- });
- });
- } catch (error) {
- console.error('Error during upload:', error);
- throw error;
- }
- }
|