|
@@ -248,6 +248,7 @@ function loadUploadL(i,e,key,url,assets)
|
|
|
var token = e.attr('token');
|
|
|
var host = e.attr('host');
|
|
|
var domain = e.attr('domain');
|
|
|
+ var bucket = e.attr('bucket');
|
|
|
var path = e.attr('path');
|
|
|
var cover = e.attr('cover');
|
|
|
var type = e.attr('m');
|
|
@@ -326,28 +327,35 @@ function loadUploadL(i,e,key,url,assets)
|
|
|
};
|
|
|
|
|
|
if (type == 'qiniu') {
|
|
|
- qiniuHandle(id, name, token, domain, file, filename, element, error, complete);
|
|
|
+ qiniuHandle(id, name, token, domain, bucket, file, filename, element, error, complete);
|
|
|
} else if(type == 'oss') {
|
|
|
- ossHandle(id, name, token, domain, file, filename, element, error, complete);
|
|
|
+ ossHandle(id, name, token, domain, bucket, file, filename, element, error, complete);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-function ossHandle(id, name, token, domain, file, filename, element, error, complete)
|
|
|
+function ossHandle(id, name, token, domain, bucket, file, filename, element, error, complete)
|
|
|
{
|
|
|
- console.info(id);
|
|
|
-
|
|
|
- let OSS = require('ali-oss')
|
|
|
+ var temp = token.split('||');
|
|
|
+ if (temp[0]) {
|
|
|
+ token = temp[0];
|
|
|
+ } else {
|
|
|
+ token = '';
|
|
|
+ }
|
|
|
|
|
|
let ossConfig = {
|
|
|
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
|
|
|
- region: 'oss-cn-' + domain,
|
|
|
+ region: 'oss-' + domain,
|
|
|
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
|
|
|
- accessKeyId: '<Your AccessKeyId>',
|
|
|
- accessKeySecret: '<Your AccessKeySecret>',
|
|
|
- bucket: 'Your bucket name'
|
|
|
+ accessKeyId: temp[1],
|
|
|
+ accessKeySecret: temp[2],
|
|
|
+ bucket: bucket,
|
|
|
+ }
|
|
|
+
|
|
|
+ if (token) {
|
|
|
+ ossConfig.stsToken = token;
|
|
|
}
|
|
|
|
|
|
let client = new OSS(ossConfig);
|
|
@@ -358,46 +366,30 @@ function ossHandle(id, name, token, domain, file, filename, element, error, comp
|
|
|
async function multipartUpload () {
|
|
|
try {
|
|
|
// object-key可以自定义为文件名(例如file.txt)或目录(例如abc/test/file.txt)的形式,实现将文件上传至当前Bucket或Bucket下的指定目录。
|
|
|
- let result = await client.multipartUpload('object-key', 'file-object', {
|
|
|
+ let result = await client.multipartUpload(filename, file, {
|
|
|
progress: function (p, checkpoint) {
|
|
|
+ $('#' + id + '_progress').show();
|
|
|
+ element.progress(id + '_progress', parseInt(p*100)+'%')
|
|
|
// 断点记录点。浏览器重启后无法直接继续上传,您需要手动触发上传操作。
|
|
|
tempCheckpoint = checkpoint;
|
|
|
+ if (p >= 1) {
|
|
|
+ complete({key:filename,hash:true});
|
|
|
+ }
|
|
|
},
|
|
|
- meta: { year: 2020, people: 'test' },
|
|
|
- mime: 'image/jpeg'
|
|
|
+ //meta: { year: 2020, people: 'test' },
|
|
|
+ //mime: 'image/jpeg'
|
|
|
})
|
|
|
} catch(e){
|
|
|
- console.log(e);
|
|
|
+ //console.log(e);
|
|
|
+ error();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 开始分片上传。
|
|
|
multipartUpload();
|
|
|
-
|
|
|
- // 暂停分片上传。
|
|
|
- client.cancel();
|
|
|
-
|
|
|
- // 恢复上传。
|
|
|
- let resumeclient = new OSS(ossConfig);
|
|
|
- async function resumeUpload () {
|
|
|
- try {
|
|
|
- let result = await resumeclient.multipartUpload('object-key', 'file-object', {
|
|
|
- progress: function (p, checkpoint) {
|
|
|
- tempCheckpoint = checkpoint;
|
|
|
- },
|
|
|
- checkpoint: tempCheckpoint,
|
|
|
- meta: { year: 2020, people: 'test' },
|
|
|
- mime: 'image/jpeg'
|
|
|
- })
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- resumeUpload();
|
|
|
}
|
|
|
|
|
|
-function qiniuHandle(id, name, token, domain, file, filename, element, error, complete)
|
|
|
+function qiniuHandle(id, name, token, domain, bucket, file, filename, element, error, complete)
|
|
|
{
|
|
|
// eslint-disable-next-line
|
|
|
var finishedAttr = [];
|