@sadais/uploader 0.5.14 → 0.5.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +28 -4
- package/dist/index.min.js +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -269,6 +269,11 @@ class SadaisUploader {
|
|
|
269
269
|
return { successUrls, failUrls }
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
async initFileSize(url, success) {
|
|
273
|
+
if (!success.fileInfo.size && success.fileInfo.size !== 0) {
|
|
274
|
+
success.fileInfo = { ...success.fileInfo, size: await this.getFileSize(url) };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
272
277
|
// 表单上传
|
|
273
278
|
_formSubmit(resolve, reject, file) {
|
|
274
279
|
console.log('表单上传', file);
|
|
@@ -306,11 +311,12 @@ class SadaisUploader {
|
|
|
306
311
|
name: 'file',
|
|
307
312
|
formData,
|
|
308
313
|
timeout: timeout, // 默认10s
|
|
309
|
-
success: (res) => {
|
|
314
|
+
success: async (res) => {
|
|
310
315
|
const { statusCode } = res;
|
|
311
316
|
const isSuccess =
|
|
312
317
|
statusCode == 200 || (UPLOADER_TYPE.HUAWEI === this.options.type && statusCode == 204);
|
|
313
318
|
if (isSuccess) {
|
|
319
|
+
await this.initFileSize(uploadedFilePath, success);
|
|
314
320
|
resolve(success);
|
|
315
321
|
} else {
|
|
316
322
|
error.head.msg = res;
|
|
@@ -333,12 +339,13 @@ class SadaisUploader {
|
|
|
333
339
|
const xhr = new XMLHttpRequest();
|
|
334
340
|
xhr.timeout = this.options.uploadTimeOut || 10000; // 默认10s
|
|
335
341
|
xhr.open('POST', apiUrl, true);
|
|
336
|
-
xhr.onreadystatechange = () => {
|
|
342
|
+
xhr.onreadystatechange = async () => {
|
|
337
343
|
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
338
344
|
if (
|
|
339
345
|
xhr.status == 200 ||
|
|
340
346
|
(UPLOADER_TYPE.HUAWEI === this.options.type && xhr.status == 204)
|
|
341
347
|
) {
|
|
348
|
+
await this.initFileSize(uploadedFilePath, success);
|
|
342
349
|
resolve(success);
|
|
343
350
|
} else {
|
|
344
351
|
reject(error);
|
|
@@ -370,6 +377,20 @@ class SadaisUploader {
|
|
|
370
377
|
}
|
|
371
378
|
}
|
|
372
379
|
|
|
380
|
+
async getFileSize(url) {
|
|
381
|
+
return new Promise((resolve) => {
|
|
382
|
+
uni.request({
|
|
383
|
+
url: url,
|
|
384
|
+
method: 'HEAD',
|
|
385
|
+
success: (res) => {
|
|
386
|
+
resolve(Number(`${res.header['Content-Length'] || 0}`));
|
|
387
|
+
},
|
|
388
|
+
fail: (_) => {
|
|
389
|
+
resolve(0);
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
})
|
|
393
|
+
}
|
|
373
394
|
async _apiSubmit(resolve, reject, file) {
|
|
374
395
|
console.log('api接口上传');
|
|
375
396
|
|
|
@@ -426,6 +447,7 @@ class SadaisUploader {
|
|
|
426
447
|
reject(error);
|
|
427
448
|
} else {
|
|
428
449
|
success.data = data.url;
|
|
450
|
+
await this.initFileSize(data.url, success);
|
|
429
451
|
resolve(success);
|
|
430
452
|
}
|
|
431
453
|
} catch (error) {
|
|
@@ -505,10 +527,11 @@ class SadaisUploader {
|
|
|
505
527
|
'Pic-Operations': picOperations
|
|
506
528
|
},
|
|
507
529
|
timeout: this.options.uploadTimeOut || 10000, // 默认10s
|
|
508
|
-
success: (res) => {
|
|
530
|
+
success: async (res) => {
|
|
509
531
|
console.log('上传结果', res);
|
|
510
532
|
const { statusCode } = res;
|
|
511
533
|
if (statusCode == 200) {
|
|
534
|
+
await this.initFileSize(uploadedFilePath, success);
|
|
512
535
|
resolve(success);
|
|
513
536
|
} else {
|
|
514
537
|
if (ossFailedApiOption) {
|
|
@@ -535,9 +558,10 @@ class SadaisUploader {
|
|
|
535
558
|
xhr.open('PUT', apiUrl, true);
|
|
536
559
|
xhr.setRequestHeader('Authorization', authorizationInfo);
|
|
537
560
|
xhr.setRequestHeader('Pic-Operations', picOperations);
|
|
538
|
-
xhr.onreadystatechange = () => {
|
|
561
|
+
xhr.onreadystatechange = async () => {
|
|
539
562
|
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
540
563
|
if (xhr.status === 200) {
|
|
564
|
+
await this.initFileSize(uploadedFilePath, success);
|
|
541
565
|
resolve(success);
|
|
542
566
|
} else {
|
|
543
567
|
reject(error);
|
package/dist/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n,r,a,o,i){try{var s=e[o](i),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,a)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){s(o,r,a,i,u,"next",e)}function u(e){s(o,r,a,i,u,"throw",e)}i(void 0)}))}}function c(e){var t,n,r,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new l(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function l(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return l=function(e){this.s=e,this.n=e.next},l.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new l(e)}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e3,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",o=n;return new Promise((function(n,i){var s=function(){var c=u(regeneratorRuntime.mark((function u(){var c;return regeneratorRuntime.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.prev=0,u.next=3,e();case 3:return c=u.sent,u.next=6,t(c);case 6:!u.sent&&o>0?(o--,console.log(a,"重试次数减少,剩余次数:",o),setTimeout(s,r)):(console.log(a,"返回结果:",c),n(c)),u.next=13;break;case 10:u.prev=10,u.t0=u.catch(0),o>0?(o--,console.log(a,"异常重试次数减少,剩余次数:",o),setTimeout(s,r)):(console.log(a,"重试次数已用完,错误信息:",u.t0),i(u.t0));case 13:case"end":return u.stop()}}),u,null,[[0,10]])})));return function(){return c.apply(this,arguments)}}();s()}))}function f(e){return e&&e.size}function h(e){return new Promise((function(t,n){var r=new FileReader;e.name,r.readAsArrayBuffer(e),r.addEventListener("loadend",(function(e){var n=e.target.result;t(n)}),!1)}))}Object.defineProperty(exports,"__esModule",{value:!0});var d,m={ALIYUN:"ALIYUN",TXYUN:"TXYUN",HUAWEI:"HUAWEI"},g=function(e){return d||(d=new y(e)),d},y=function(){function n(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),this._init(e)}var r,o,s,l,d,g,y,b,v,x,k;return r=n,o=[{key:"_init",value:(k=u(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.params=t;case 1:case"end":return e.stop()}}),e,this)}))),function(e){return k.apply(this,arguments)})},{key:"initOptions",value:(x=u(regeneratorRuntime.mark((function e(t){var n,r,o,i,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.params||(this.params={}),!t){e.next=3;break}return e.abrupt("return",this.params=a(a({},this.params),t));case 3:if((n=this.params).type,r=n.getOptionFun,o=n.path,i=n.getAuthInfoFunc,n.isUploadWebp,n.ossFailedApiOption,this.getAuthInfoFunc=i,this.options=a({},this.params),!r){e.next=15;break}return e.next=9,this._initOptionFun();case 9:if(s=e.sent){e.next=12;break}return e.abrupt("return");case 12:(o=s.path||o)&&!o.endsWith("/")&&(s.path=o+"/"),this.options=a(a({},this.options),s);case 15:case"end":return e.stop()}}),e,this)}))),function(e){return x.apply(this,arguments)})},{key:"_initOptionFun",value:(v=u(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",p((function(){return t.params.getOptionFun(t.params.type)}),(function(e){return e.endPoint}),5,300,"oss 初始化"));case 1:case"end":return e.stop()}}),e)}))),function(){return v.apply(this,arguments)})},{key:"_isTimeOut",value:function(){var e=this.options.timeOut-1e4;return(new Date).getTime()>e}},{key:"upload",value:(b=u(regeneratorRuntime.mark((function e(t){var n,r,a,o,i,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:n=Array.isArray(t)?t:[t],r=[],a=0;case 5:if(!(a<n.length)){e.next=16;break}return o=n[a],e.next=9,this.uploadFile(o);case 9:i=e.sent,s=i.data,u=i.head,r.push({index:a,url:s,ret:u.ret});case 13:a++,e.next=5;break;case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"uploadFile",value:(y=u(regeneratorRuntime.mark((function e(n){var r,o,i,s,u,c,l,p=this,h=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=h.length>1&&void 0!==h[1]?h[1]:{},e.prev=1,e.next=4,uni.getNetworkType();case 4:if(o=e.sent,i=t(o,2),s=i[1],!["none","offline"].includes(s.networkType)){e.next=10;break}return uni.showToast({icon:"none",title:"网络异常,请检查网络",duration:3e3}),e.abrupt("return");case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),console.log(e.t0);case 15:if(this.options&&this.options.endPoint&&!this._isTimeOut()){e.next=19;break}return console.log("初始化 oss 开始"),e.next=19,this.initOptions();case 19:return console.log("sadais uploader 上传文件内容",n),n=!f(n)&&f(n.path)?n.path:n,this.options=a(a({},this.options),r),console.log("当前上传配置信息",this.options),!n.name&&n.path&&(u=n.path.startsWith("blob"),c=n.path.startsWith("data"),l=u||c?".png":n.path.substring(n.path.lastIndexOf(".")),n.name=this._guid()+l),e.abrupt("return",new Promise((function(e,t){p.options.endPoint?p.options.isUploadWebp&&m.TXYUN==p.params.type&&p._fileIsPic(n.name)?p._putSubmit(e,t,n):p._formSubmit(e,t,n):(console.log("oss 初始化失败,走接口上传"),p._apiSubmit(e,t,n))})));case 25:case"end":return e.stop()}}),e,this,[[1,12]])}))),function(e){return y.apply(this,arguments)})},{key:"uploadFiles",value:(g=u(regeneratorRuntime.mark((function e(t){var n,r,a,o,i,s,u,l,p,f,h,d=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=d.length>1&&void 0!==d[1]?d[1]:{},r=[],a=[],o=!1,i=!1,e.prev=5,u=c(t);case 7:return e.next=9,u.next();case 9:if(!(o=!(l=e.sent).done)){e.next=20;break}return p=l.value,e.next=13,this.uploadFile(p,n);case 13:f=e.sent,h=f.data,0===f.head.ret?r.push(h):a.push(h);case 17:o=!1,e.next=7;break;case 20:e.next=26;break;case 22:e.prev=22,e.t0=e.catch(5),i=!0,s=e.t0;case 26:if(e.prev=26,e.prev=27,!o||null==u.return){e.next=31;break}return e.next=31,u.return();case 31:if(e.prev=31,!i){e.next=34;break}throw s;case 34:return e.finish(31);case 35:return e.finish(26);case 36:return e.abrupt("return",{successUrls:r,failUrls:a});case 37:case"end":return e.stop()}}),e,this,[[5,22,26,36],[27,,31,35]])}))),function(e){return g.apply(this,arguments)})},{key:"_formSubmit",value:function(e,t,n){var r=this;function a(){var r=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4,o=this.options.domain,i=this._buildParams(n),s=i.url,u="".concat(o).concat(o.endsWith("/")?"":"/").concat(i.key),c={data:u,head:{ret:0,msg:"success"},fileInfo:n},l={data:n.name,head:{ret:1,msg:"fail"},fileInfo:n};m.HUAWEI===this.options.type&&(delete i.name,delete i.url,delete i.success_action_status);try{uni.uploadFile({url:s,filePath:n.path,name:"file",formData:i,timeout:a,success:function(n){var a=n.statusCode;200==a||m.HUAWEI===r.options.type&&204==a?e(c):(l.head.msg=n,t(l))},fail:function(e){console.log(e),t(e)}})}catch(a){console.log("uni报错,调用XMLHttpRequest",a);var p=new FormData;Object.keys(i).forEach((function(e){p.append(e,i[e])})),p.append("file",n);var f=new XMLHttpRequest;f.timeout=this.options.uploadTimeOut||1e4,f.open("POST",s,!0),f.onreadystatechange=function(){f.readyState===XMLHttpRequest.DONE&&(200==f.status||m.HUAWEI===r.options.type&&204==f.status?e(c):t(l))},f.send(p)}}console.log("表单上传",n);try{uni.getFileInfo({filePath:n.path,success:function(e){var t=Math.round(e.size/2e3)+parseInt(r.options.uploadTimeOut||1e4);console.log("上传文件大小",e.size,t),a.call(r,t)},fail:function(e){console.log("获取文件信息失败",e),t(e)}})}catch(e){a.call(this)}}},{key:"_apiSubmit",value:(d=u(regeneratorRuntime.mark((function n(r,a,o){var i,s,u,c,l,f,h,d,m,g,y,b,v,x,k,w,O;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c=function(){return p((function(){return uni.uploadFile({url:s.api,filePath:o.path,name:"file",timeout:u||1e4})}),(function(e){var n=t(e,2)[1]||{},r=n.errMsg;return n.data,"uploadFile:ok"===r}),5,500,"api接口上传")},console.log("api接口上传"),i=this.options,s=i.ossFailedApiOption,u=i.uploadTimeOut,l={data:"",head:{ret:0,msg:"success"},fileInfo:o},f={data:o.name,head:{ret:1,msg:"fail"},fileInfo:o},n.prev=5,n.next=8,c();case 8:h=n.sent,d=t(h,2),"object"!==e(m=d[1])&&a(f),y=(g=m||{}).errMsg,b=g.data,y&&"uploadFile:ok"===y||(f.head.msg=y,a(f)),v=JSON.parse(b),x=v.data,k=v.head,w=(k=void 0===k?{}:k).ret,O=k.msg,w!==s.successRetCode?(f.head.msg=O,a(f)):(l.data=x.url,r(l)),n.next=23;break;case 20:n.prev=20,n.t0=n.catch(5),a(n.t0);case 23:case"end":return n.stop()}}),n,this,[[5,20]])}))),function(e,t,n){return d.apply(this,arguments)})},{key:"_putSubmit",value:(l=u(regeneratorRuntime.mark((function e(t,n,r){var a,o,i,s,c,l,p,d,m,g,y,b,v,x,k,w,O,P=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("腾讯put上传"),a=this.options,o=a.domain,i=a.ossFailedApiOption,s=this._buildParams(r),c=s.url+"/"+s.key,l=JSON.stringify({is_pic_info:1,rules:[{fileid:"/"+s.key,rule:"imageMogr2/format/webp"}]}),p={httpMethodName:"PUT",resoucePath:"/"+s.key,storage:this.params.type,headerMap:{"Pic-Operations":l}},d={},e.prev=7,console.log("获取权限信息"),e.next=11,this.getAuthInfoFunc(p);case 11:if(d=e.sent,console.log("获取权限结果",d),d.content){e.next=15;break}return e.abrupt("return",this._apiSubmit(t,n,r));case 15:e.next=21;break;case 17:return e.prev=17,e.t0=e.catch(7),console.log("获取权限失败",e.t0),e.abrupt("return",this._apiSubmit(t,n,r));case 21:if(m=d?d.content:""){e.next=24;break}return e.abrupt("return",n(b));case 24:g="".concat(o).concat(o.endsWith("/")?"":"/").concat(s.key),y={data:g,head:{ret:0,msg:"success"},fileInfo:r},b={data:r.name,head:{ret:1,msg:"fail"},fileInfo:r},v=function(){var e=u(regeneratorRuntime.mark((function e(a){var o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=a,!f(a)){e.next=6;break}return e.next=5,h(r);case 5:o=e.sent;case 6:console.log("上传数据",o),uni.request({url:c,method:"PUT",data:o,header:{Authorization:m,"Pic-Operations":l},timeout:P.options.uploadTimeOut||1e4,success:function(e){console.log("上传结果",e),200==e.statusCode?t(y):i?P._apiSubmit(t,n,r):(b.head.msg=e,n(b))},fail:function(e){console.log("上传失败",i),i?P._apiSubmit(t,n,r):(console.log(e),n(e))}}),e.next=19;break;case 10:e.prev=10,e.t0=e.catch(0),console.log("web环境"),(s=new XMLHttpRequest).open("PUT",c,!0),s.setRequestHeader("Authorization",m),s.setRequestHeader("Pic-Operations",l),s.onreadystatechange=function(){s.readyState===XMLHttpRequest.DONE&&(200===s.status?t(y):n(b))},s.send(a);case 19:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(t){return e.apply(this,arguments)}}(),e.prev=28,console.log("微信环境"),x=uni.getFileSystemManager(),k=x.readFileSync(r.path),v(k),e.next=48;break;case 35:if(e.prev=35,e.t1=e.catch(28),console.log("H5环境"),!r.type){e.next=42;break}v(r),e.next=48;break;case 42:return e.next=44,fetch(r.path).then((function(e){return e.blob()}));case 44:w=e.sent,(O=new FileReader).onload=function(){v(O.result)},O.readAsArrayBuffer(w);case 48:case"end":return e.stop()}}),e,this,[[7,17],[28,35]])}))),function(e,t,n){return l.apply(this,arguments)})},{key:"_fileIsPic",value:function(e){var t=e.substring(e.lastIndexOf(".")+1);return["png","jpg","jpeg","gif","bmp","webp","avif","heif","tpg","psd"].includes(t.toLowerCase())}},{key:"_buildParams",value:function(e){var t=this.options,n=t.type;e.name||(e.name=this._guid()+".png");var r={name:e.name,policy:t.policy,success_action_status:"200",key:this._getUploadFilePath(e.name)},a=t.endPoint.replace("https://","").replace("http://","");return m.TXYUN===n?(r["q-ak"]=t.accessKeyId,r["q-signature"]=t.signature,r["q-sign-algorithm"]="sha1",r["q-key-time"]=t.param["q-sign-time"],r.url="https://".concat(t.bucketName,".cos.").concat(a,".myqcloud.com")):m.HUAWEI===n?(r.AccessKeyId=t.accessKeyId,r.signature=t.signature,r.url="https://".concat(t.bucketName,".").concat(a),r.policy=t.policy):(r.signature=t.signature,r.OSSAccessKeyId=t.accessKeyId,r.bucket=t.bucketName,r.url="https://".concat(t.bucketName,".").concat(a)),r}},{key:"_getUploadFilePath",value:function(e){this.params.type;var t=this.options,n=t.useOriginalName,r=t.path,a=e.lastIndexOf("."),o=e.substring(0,a),i=e.substring(a+1),s=n?"/".concat(o):"";return"".concat(r).concat(this._getNowDate(),"/").concat(this._guid()).concat(s,".").concat(i)}},{key:"_getNowDate",value:function(){var e=new Date,t=e.getFullYear(),n=e.getMonth()+1,r=e.getDate();return n<10&&(n="0".concat(n)),r<10&&(r="0".concat(r)),"".concat(t).concat(n).concat(r)}},{key:"_guid",value:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}}],o&&i(r.prototype,o),s&&i(r,s),Object.defineProperty(r,"prototype",{writable:!1}),n}();exports.DEFAULT_OPTIONS={},exports.SadaisUploader=y,exports.UPLOADER_TYPE=m,exports.UploaderInstance=g;
|
|
1
|
+
"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,i=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{o||null==n.return||n.return()}finally{if(s)throw a}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n,r,a,i,o){try{var s=e[i](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,a)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){s(i,r,a,o,u,"next",e)}function u(e){s(i,r,a,o,u,"throw",e)}o(void 0)}))}}function c(e){var t,n,r,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new p(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function p(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return p=function(e){this.s=e,this.n=e.next},p.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new p(e)}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e3,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=n;return new Promise((function(n,o){var s=function(){var c=u(regeneratorRuntime.mark((function u(){var c;return regeneratorRuntime.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.prev=0,u.next=3,e();case 3:return c=u.sent,u.next=6,t(c);case 6:!u.sent&&i>0?(i--,console.log(a,"重试次数减少,剩余次数:",i),setTimeout(s,r)):(console.log(a,"返回结果:",c),n(c)),u.next=13;break;case 10:u.prev=10,u.t0=u.catch(0),i>0?(i--,console.log(a,"异常重试次数减少,剩余次数:",i),setTimeout(s,r)):(console.log(a,"重试次数已用完,错误信息:",u.t0),o(u.t0));case 13:case"end":return u.stop()}}),u,null,[[0,10]])})));return function(){return c.apply(this,arguments)}}();s()}))}function f(e){return e&&e.size}function h(e){return new Promise((function(t,n){var r=new FileReader;e.name,r.readAsArrayBuffer(e),r.addEventListener("loadend",(function(e){var n=e.target.result;t(n)}),!1)}))}Object.defineProperty(exports,"__esModule",{value:!0});var m,d={ALIYUN:"ALIYUN",TXYUN:"TXYUN",HUAWEI:"HUAWEI"},g=function(e){return m||(m=new y(e)),m},y=function(){function n(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),this._init(e)}var r,i,s,p,m,g,y,b,v,x,k,w,O;return r=n,i=[{key:"_init",value:(O=u(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.params=t;case 1:case"end":return e.stop()}}),e,this)}))),function(e){return O.apply(this,arguments)})},{key:"initOptions",value:(w=u(regeneratorRuntime.mark((function e(t){var n,r,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.params||(this.params={}),!t){e.next=3;break}return e.abrupt("return",this.params=a(a({},this.params),t));case 3:if((n=this.params).type,r=n.getOptionFun,i=n.path,o=n.getAuthInfoFunc,n.isUploadWebp,n.ossFailedApiOption,this.getAuthInfoFunc=o,this.options=a({},this.params),!r){e.next=15;break}return e.next=9,this._initOptionFun();case 9:if(s=e.sent){e.next=12;break}return e.abrupt("return");case 12:(i=s.path||i)&&!i.endsWith("/")&&(s.path=i+"/"),this.options=a(a({},this.options),s);case 15:case"end":return e.stop()}}),e,this)}))),function(e){return w.apply(this,arguments)})},{key:"_initOptionFun",value:(k=u(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",l((function(){return t.params.getOptionFun(t.params.type)}),(function(e){return e.endPoint}),5,300,"oss 初始化"));case 1:case"end":return e.stop()}}),e)}))),function(){return k.apply(this,arguments)})},{key:"_isTimeOut",value:function(){var e=this.options.timeOut-1e4;return(new Date).getTime()>e}},{key:"upload",value:(x=u(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:n=Array.isArray(t)?t:[t],r=[],a=0;case 5:if(!(a<n.length)){e.next=16;break}return i=n[a],e.next=9,this.uploadFile(i);case 9:o=e.sent,s=o.data,u=o.head,r.push({index:a,url:s,ret:u.ret});case 13:a++,e.next=5;break;case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return x.apply(this,arguments)})},{key:"uploadFile",value:(v=u(regeneratorRuntime.mark((function e(n){var r,i,o,s,u,c,p,l=this,h=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=h.length>1&&void 0!==h[1]?h[1]:{},e.prev=1,e.next=4,uni.getNetworkType();case 4:if(i=e.sent,o=t(i,2),s=o[1],!["none","offline"].includes(s.networkType)){e.next=10;break}return uni.showToast({icon:"none",title:"网络异常,请检查网络",duration:3e3}),e.abrupt("return");case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),console.log(e.t0);case 15:if(this.options&&this.options.endPoint&&!this._isTimeOut()){e.next=19;break}return console.log("初始化 oss 开始"),e.next=19,this.initOptions();case 19:return console.log("sadais uploader 上传文件内容",n),n=!f(n)&&f(n.path)?n.path:n,this.options=a(a({},this.options),r),console.log("当前上传配置信息",this.options),!n.name&&n.path&&(u=n.path.startsWith("blob"),c=n.path.startsWith("data"),p=u||c?".png":n.path.substring(n.path.lastIndexOf(".")),n.name=this._guid()+p),e.abrupt("return",new Promise((function(e,t){l.options.endPoint?l.options.isUploadWebp&&d.TXYUN==l.params.type&&l._fileIsPic(n.name)?l._putSubmit(e,t,n):l._formSubmit(e,t,n):(console.log("oss 初始化失败,走接口上传"),l._apiSubmit(e,t,n))})));case 25:case"end":return e.stop()}}),e,this,[[1,12]])}))),function(e){return v.apply(this,arguments)})},{key:"uploadFiles",value:(b=u(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u,p,l,f,h,m=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=m.length>1&&void 0!==m[1]?m[1]:{},r=[],a=[],i=!1,o=!1,e.prev=5,u=c(t);case 7:return e.next=9,u.next();case 9:if(!(i=!(p=e.sent).done)){e.next=20;break}return l=p.value,e.next=13,this.uploadFile(l,n);case 13:f=e.sent,h=f.data,0===f.head.ret?r.push(h):a.push(h);case 17:i=!1,e.next=7;break;case 20:e.next=26;break;case 22:e.prev=22,e.t0=e.catch(5),o=!0,s=e.t0;case 26:if(e.prev=26,e.prev=27,!i||null==u.return){e.next=31;break}return e.next=31,u.return();case 31:if(e.prev=31,!o){e.next=34;break}throw s;case 34:return e.finish(31);case 35:return e.finish(26);case 36:return e.abrupt("return",{successUrls:r,failUrls:a});case 37:case"end":return e.stop()}}),e,this,[[5,22,26,36],[27,,31,35]])}))),function(e){return b.apply(this,arguments)})},{key:"initFileSize",value:(y=u(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.fileInfo.size||0===n.fileInfo.size){e.next=9;break}return e.t0=a,e.t1=a({},n.fileInfo),e.t2={},e.next=6,this.getFileSize(t);case 6:e.t3=e.sent,e.t4={size:e.t3},n.fileInfo=(0,e.t0)(e.t1,e.t2,e.t4);case 9:case"end":return e.stop()}}),e,this)}))),function(e,t){return y.apply(this,arguments)})},{key:"_formSubmit",value:function(e,t,n){var r=this;function a(){var r,a=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4,o=this.options.domain,s=this._buildParams(n),c=s.url,p="".concat(o).concat(o.endsWith("/")?"":"/").concat(s.key),l={data:p,head:{ret:0,msg:"success"},fileInfo:n},f={data:n.name,head:{ret:1,msg:"fail"},fileInfo:n};d.HUAWEI===this.options.type&&(delete s.name,delete s.url,delete s.success_action_status);try{uni.uploadFile({url:c,filePath:n.path,name:"file",formData:s,timeout:i,success:(r=u(regeneratorRuntime.mark((function n(r){var i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(200!=(i=r.statusCode)&&(d.HUAWEI!==a.options.type||204!=i)){n.next=8;break}return n.next=5,a.initFileSize(p,l);case 5:e(l),n.next=10;break;case 8:f.head.msg=r,t(f);case 10:case"end":return n.stop()}}),n)}))),function(e){return r.apply(this,arguments)}),fail:function(e){console.log(e),t(e)}})}catch(r){console.log("uni报错,调用XMLHttpRequest",r);var h=new FormData;Object.keys(s).forEach((function(e){h.append(e,s[e])})),h.append("file",n);var m=new XMLHttpRequest;m.timeout=this.options.uploadTimeOut||1e4,m.open("POST",c,!0),m.onreadystatechange=u(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(m.readyState!==XMLHttpRequest.DONE){n.next=8;break}if(200!=m.status&&(d.HUAWEI!==a.options.type||204!=m.status)){n.next=7;break}return n.next=4,a.initFileSize(p,l);case 4:e(l),n.next=8;break;case 7:t(f);case 8:case"end":return n.stop()}}),n)}))),m.send(h)}}console.log("表单上传",n);try{uni.getFileInfo({filePath:n.path,success:function(e){var t=Math.round(e.size/2e3)+parseInt(r.options.uploadTimeOut||1e4);console.log("上传文件大小",e.size,t),a.call(r,t)},fail:function(e){console.log("获取文件信息失败",e),t(e)}})}catch(e){a.call(this)}}},{key:"getFileSize",value:(g=u(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e){uni.request({url:t,method:"HEAD",success:function(t){e(Number("".concat(t.header["Content-Length"]||0)))},fail:function(t){e(0)}})})));case 1:case"end":return e.stop()}}),e)}))),function(e){return g.apply(this,arguments)})},{key:"_apiSubmit",value:(m=u(regeneratorRuntime.mark((function n(r,a,i){var o,s,u,c,p,f,h,m,d,g,y,b,v,x,k,w,O;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c=function(){return l((function(){return uni.uploadFile({url:s.api,filePath:i.path,name:"file",timeout:u||1e4})}),(function(e){var n=t(e,2)[1]||{},r=n.errMsg;return n.data,"uploadFile:ok"===r}),5,500,"api接口上传")},console.log("api接口上传"),o=this.options,s=o.ossFailedApiOption,u=o.uploadTimeOut,p={data:"",head:{ret:0,msg:"success"},fileInfo:i},f={data:i.name,head:{ret:1,msg:"fail"},fileInfo:i},n.prev=5,n.next=8,c();case 8:if(h=n.sent,m=t(h,2),"object"!==e(d=m[1])&&a(f),y=(g=d||{}).errMsg,b=g.data,y&&"uploadFile:ok"===y||(f.head.msg=y,a(f)),v=JSON.parse(b),x=v.data,k=v.head,w=(k=void 0===k?{}:k).ret,O=k.msg,w===s.successRetCode){n.next=22;break}f.head.msg=O,a(f),n.next=26;break;case 22:return p.data=x.url,n.next=25,this.initFileSize(x.url,p);case 25:r(p);case 26:n.next=31;break;case 28:n.prev=28,n.t0=n.catch(5),a(n.t0);case 31:case"end":return n.stop()}}),n,this,[[5,28]])}))),function(e,t,n){return m.apply(this,arguments)})},{key:"_putSubmit",value:(p=u(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,c,p,l,m,d,g,y,b,v,x,k,w,O,P=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("腾讯put上传"),a=this.options,i=a.domain,o=a.ossFailedApiOption,s=this._buildParams(r),c=s.url+"/"+s.key,p=JSON.stringify({is_pic_info:1,rules:[{fileid:"/"+s.key,rule:"imageMogr2/format/webp"}]}),l={httpMethodName:"PUT",resoucePath:"/"+s.key,storage:this.params.type,headerMap:{"Pic-Operations":p}},m={},e.prev=7,console.log("获取权限信息"),e.next=11,this.getAuthInfoFunc(l);case 11:if(m=e.sent,console.log("获取权限结果",m),m.content){e.next=15;break}return e.abrupt("return",this._apiSubmit(t,n,r));case 15:e.next=21;break;case 17:return e.prev=17,e.t0=e.catch(7),console.log("获取权限失败",e.t0),e.abrupt("return",this._apiSubmit(t,n,r));case 21:if(d=m?m.content:""){e.next=24;break}return e.abrupt("return",n(b));case 24:g="".concat(i).concat(i.endsWith("/")?"":"/").concat(s.key),y={data:g,head:{ret:0,msg:"success"},fileInfo:r},b={data:r.name,head:{ret:1,msg:"fail"},fileInfo:r},v=function(){var e=u(regeneratorRuntime.mark((function e(a){var i,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,i=a,!f(a)){e.next=6;break}return e.next=5,h(r);case 5:i=e.sent;case 6:console.log("上传数据",i),uni.request({url:c,method:"PUT",data:i,header:{Authorization:d,"Pic-Operations":p},timeout:P.options.uploadTimeOut||1e4,success:function(){var e=u(regeneratorRuntime.mark((function e(a){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(console.log("上传结果",a),200!=a.statusCode){e.next=8;break}return e.next=5,P.initFileSize(g,y);case 5:t(y),e.next=9;break;case 8:o?P._apiSubmit(t,n,r):(b.head.msg=a,n(b));case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),fail:function(e){console.log("上传失败",o),o?P._apiSubmit(t,n,r):(console.log(e),n(e))}}),e.next=19;break;case 10:e.prev=10,e.t0=e.catch(0),console.log("web环境"),(s=new XMLHttpRequest).open("PUT",c,!0),s.setRequestHeader("Authorization",d),s.setRequestHeader("Pic-Operations",p),s.onreadystatechange=u(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s.readyState!==XMLHttpRequest.DONE){e.next=8;break}if(200!==s.status){e.next=7;break}return e.next=4,P.initFileSize(g,y);case 4:t(y),e.next=8;break;case 7:n(b);case 8:case"end":return e.stop()}}),e)}))),s.send(a);case 19:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(t){return e.apply(this,arguments)}}(),e.prev=28,console.log("微信环境"),x=uni.getFileSystemManager(),k=x.readFileSync(r.path),v(k),e.next=48;break;case 35:if(e.prev=35,e.t1=e.catch(28),console.log("H5环境"),!r.type){e.next=42;break}v(r),e.next=48;break;case 42:return e.next=44,fetch(r.path).then((function(e){return e.blob()}));case 44:w=e.sent,(O=new FileReader).onload=function(){v(O.result)},O.readAsArrayBuffer(w);case 48:case"end":return e.stop()}}),e,this,[[7,17],[28,35]])}))),function(e,t,n){return p.apply(this,arguments)})},{key:"_fileIsPic",value:function(e){var t=e.substring(e.lastIndexOf(".")+1);return["png","jpg","jpeg","gif","bmp","webp","avif","heif","tpg","psd"].includes(t.toLowerCase())}},{key:"_buildParams",value:function(e){var t=this.options,n=t.type;e.name||(e.name=this._guid()+".png");var r={name:e.name,policy:t.policy,success_action_status:"200",key:this._getUploadFilePath(e.name)},a=t.endPoint.replace("https://","").replace("http://","");return d.TXYUN===n?(r["q-ak"]=t.accessKeyId,r["q-signature"]=t.signature,r["q-sign-algorithm"]="sha1",r["q-key-time"]=t.param["q-sign-time"],r.url="https://".concat(t.bucketName,".cos.").concat(a,".myqcloud.com")):d.HUAWEI===n?(r.AccessKeyId=t.accessKeyId,r.signature=t.signature,r.url="https://".concat(t.bucketName,".").concat(a),r.policy=t.policy):(r.signature=t.signature,r.OSSAccessKeyId=t.accessKeyId,r.bucket=t.bucketName,r.url="https://".concat(t.bucketName,".").concat(a)),r}},{key:"_getUploadFilePath",value:function(e){this.params.type;var t=this.options,n=t.useOriginalName,r=t.path,a=e.lastIndexOf("."),i=e.substring(0,a),o=e.substring(a+1),s=n?"/".concat(i):"";return"".concat(r).concat(this._getNowDate(),"/").concat(this._guid()).concat(s,".").concat(o)}},{key:"_getNowDate",value:function(){var e=new Date,t=e.getFullYear(),n=e.getMonth()+1,r=e.getDate();return n<10&&(n="0".concat(n)),r<10&&(r="0".concat(r)),"".concat(t).concat(n).concat(r)}},{key:"_guid",value:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}}],i&&o(r.prototype,i),s&&o(r,s),Object.defineProperty(r,"prototype",{writable:!1}),n}();exports.DEFAULT_OPTIONS={},exports.SadaisUploader=y,exports.UPLOADER_TYPE=d,exports.UploaderInstance=g;
|