forked from integrated_whb/integrated_whb_vue
84 lines
2.4 KiB
JavaScript
84 lines
2.4 KiB
JavaScript
import { setVideo, setVideoRefresh } from "@/request/api.js";
|
|
import { ElLoading, ElMessage } from "element-plus";
|
|
|
|
export default function useAliYunUpload({
|
|
addFileSuccess,
|
|
onUploadstarted,
|
|
onUploadSucceed,
|
|
onUploadFailed,
|
|
onUploadCanceled,
|
|
onUploadProgress,
|
|
onUploadTokenExpired,
|
|
onUploadEnd,
|
|
}) {
|
|
let loading;
|
|
const uploader = new window.AliyunUpload.Vod({
|
|
timeout: 60000,
|
|
partSize: 1048576,
|
|
parallel: 5,
|
|
retryCount: 3,
|
|
retryDuration: 2,
|
|
region: "cn-shanghai",
|
|
userId: "1663991162946873",
|
|
addFileSuccess(uploadInfo) {
|
|
addFileSuccess && addFileSuccess(uploadInfo);
|
|
},
|
|
async onUploadstarted(uploadInfo) {
|
|
onUploadstarted && onUploadstarted();
|
|
let uploadAddress;
|
|
let uploadAuth;
|
|
let videoId;
|
|
if (!uploadInfo.videoId) {
|
|
const resData = await setVideo({
|
|
Title: uploadInfo.file.name,
|
|
FileName: uploadInfo.file.name,
|
|
});
|
|
uploadAddress = resData.data.uploadAddress;
|
|
uploadAuth = resData.data.uploadAuth;
|
|
videoId = resData.data.videoId;
|
|
} else {
|
|
const resData = await setVideoRefresh({
|
|
Title: uploadInfo.file.name,
|
|
FileName: uploadInfo.file.name,
|
|
VideoId: uploadInfo.videoId,
|
|
});
|
|
uploadAddress = resData.data.uploadAddress;
|
|
uploadAuth = resData.data.uploadAuth;
|
|
videoId = resData.data.videoId;
|
|
}
|
|
uploader.setUploadAuthAndAddress(
|
|
uploadInfo,
|
|
uploadAuth,
|
|
uploadAddress,
|
|
videoId
|
|
);
|
|
loading = ElLoading.service({
|
|
lock: true,
|
|
text: "加载中...",
|
|
background: "rgba(0, 0, 0, 0.5)",
|
|
});
|
|
},
|
|
onUploadSucceed(uploadInfo) {
|
|
loading.close();
|
|
onUploadSucceed && onUploadSucceed(uploadInfo);
|
|
},
|
|
onUploadFailed(uploadInfo, code, message) {
|
|
ElMessage.success("上传失败,请重新上传");
|
|
onUploadFailed && onUploadFailed(uploadInfo, code, message);
|
|
},
|
|
onUploadCanceled(uploadInfo, code, message) {
|
|
onUploadCanceled && onUploadCanceled(uploadInfo, code, message);
|
|
},
|
|
onUploadProgress(uploadInfo, totalSize, progress) {
|
|
onUploadProgress && onUploadProgress(uploadInfo, totalSize, progress);
|
|
},
|
|
onUploadTokenExpired(uploadInfo) {
|
|
onUploadTokenExpired && onUploadTokenExpired(uploadInfo);
|
|
},
|
|
onUploadEnd(uploadInfo) {
|
|
onUploadEnd && onUploadEnd(uploadInfo);
|
|
},
|
|
});
|
|
return uploader;
|
|
}
|