dever 4 years ago
parent
commit
120866bb26
1 changed files with 29 additions and 37 deletions
  1. 29 37
      assets/lib/layui/upload.js

+ 29 - 37
assets/lib/layui/upload.js

@@ -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 = [];