From 4974e3d02fb7c46c4aeab790a5e71e7a338449a0 Mon Sep 17 00:00:00 2001 From: codedogfish Date: Tue, 26 Jan 2016 05:01:54 +0800 Subject: [PATCH] Change upload url in case of net error - set qiniuUploadUrls - in case of net or unkown error, sdk will reset upload url and retry --- dist/qiniu.js | 82 +++++++++++++++++++++++++++++++++++++++++----- dist/qiniu.min.js | 2 +- dist/qiniu.min.map | 2 +- package.json | 2 +- src/qiniu.js | 80 +++++++++++++++++++++++++++++++++++++++----- 5 files changed, 148 insertions(+), 20 deletions(-) diff --git a/dist/qiniu.js b/dist/qiniu.js index 611fe393..973542e3 100644 --- a/dist/qiniu.js +++ b/dist/qiniu.js @@ -6,7 +6,7 @@ * * GitHub: http://github.com/qiniu/js-sdk * - * Date: 2015-12-28 + * Date: 2016-1-26 */ /*global plupload ,mOxie*/ @@ -48,7 +48,8 @@ function readCookie(key) { return null; } - +// if current browser is not support localStorage +// use cookie to make a polyfill if ( !window.localStorage ) { window.localStorage = { setItem: function (key, value) { @@ -67,13 +68,6 @@ function QiniuJsSDK() { var that = this; - var qiniuUploadUrl; - if (window.location.protocol === 'https:') { - qiniuUploadUrl = 'https://up.qbox.me'; - } else { - qiniuUploadUrl = 'http://upload.qiniu.com'; - } - /** * detect IE version * if current browser is not IE @@ -142,6 +136,46 @@ function QiniuJsSDK() { } + var qiniuUploadUrl; + if (window.location.protocol === 'https:') { + qiniuUploadUrl = 'https://up.qbox.me'; + } else { + qiniuUploadUrl = 'http://upload.qiniu.com'; + } + + /** + * qiniu upload urls + * 'qiniuUploadUrls' is used to change target when current url is not avaliable + * @type {Array} + */ + var qiniuUploadUrls = [ + "http://upload.qiniu.com", + "http://up.qiniu.com", + ]; + + var changeUrlTimes = 0; + + /** + * reset upload url + * if current page protocal is https + * it will always return 'https://up.qbox.me' + * else + * it will set 'qiniuUploadUrl' value with 'qiniuUploadUrls' looply + */ + this.resetUploadUrl = function(){ + if (window.location.protocol === 'https:') { + qiniuUploadUrl = 'https://up.qbox.me'; + } else { + var i = changeUrlTimes % qiniuUploadUrls.length; + qiniuUploadUrl = qiniuUploadUrls[i]; + changeUrlTimes++; + } + logger.debug('resetUploadUrl: '+qiniuUploadUrl); + }; + + this.resetUploadUrl(); + + /** * is image * @param {String} url of a file @@ -825,6 +859,24 @@ function QiniuJsSDK() { logger.debug("bind ChunkUploaded event"); + var retries = qiniuUploadUrls.length; + + // if error is unkown switch upload url and retry + var unknow_error_retry = function(file){ + if (retries-- > 0) { + setTimeout(function(){ + that.resetUploadUrl(); + file.status = plupload.QUEUED; + uploader.stop(); + uploader.start(); + }, 0); + return true; + }else{ + retries = qiniuUploadUrls.length; + return false; + } + }; + // bind 'Error' event // check the err.code and return the errTip uploader.bind('Error', (function(_Error_Handler) { @@ -850,6 +902,9 @@ function QiniuJsSDK() { if (err.response === '') { // Fix parseJSON error ,when http error is like net::ERR_ADDRESS_UNREACHABLE errTip = err.message || '未知网络错误。'; + if (!unknow_error_retry(file)) { + return; + } break; } var errorObj = that.parseJSON(err.response); @@ -869,6 +924,9 @@ function QiniuJsSDK() { break; case 599: errTip = "网络连接异常。请重试或提交反馈。"; + if (!unknow_error_retry(file)) { + return; + } break; case 614: errTip = "文件已存在。"; @@ -887,6 +945,9 @@ function QiniuJsSDK() { break; default: errTip = "未知错误。"; + if (!unknow_error_retry(file)) { + return; + } break; } errTip = errTip + '(' + err.status + ':' + errorText + ')'; @@ -906,6 +967,9 @@ function QiniuJsSDK() { break; default: errTip = err.message + err.details; + if (!unknow_error_retry(file)) { + return; + } break; } if (_Error_Handler) { diff --git a/dist/qiniu.min.js b/dist/qiniu.min.js index 58c7effa..ae300088 100644 --- a/dist/qiniu.min.js +++ b/dist/qiniu.min.js @@ -1,3 +1,3 @@ /*! qiniu-js-sdk v1.0.13-beta | Copyright 2015 by Qiniu */ -!function(global){function createCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="; expires="+d.toGMTString();document.cookie=a+"="+b+e+"; path=/"}function readCookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0,e=c.length;e>d;d++){var f=c[d];while(" "===f.charAt(0))f=f.substring(1,f.length);if(0===f.indexOf(b))return f.substring(b.length,f.length)}return null}window.localStorage||(window.localStorage={setItem:function(a,b){createCookie(a,b,30)},getItem:function(a){return readCookie(a)},removeItem:function(a){createCookie(a,"",-1)}});function QiniuJsSDK(){var that=this;var qiniuUploadUrl;qiniuUploadUrl="https:"===window.location.protocol?"https://up.qbox.me":"http://upload.qiniu.com",this.detectIEVersion=function(){var a=4,b=document.createElement("div"),c=b.getElementsByTagName("i");while(b.innerHTML="",c[0])a++;return a>4?a:!1};var logger={MUTE:0,FATA:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,TRACE:6,level:0};function log(a,b){var c="[qiniu-js-sdk]["+a+"]";if(that.detectIEVersion()){var d=c;for(var e=0;e=logger[a]){var c=Array.prototype.slice.call(arguments);log(b,c)}}}for(var property in logger)logger.hasOwnProperty(property)&&"number"==typeof logger[property]&&!logger.hasOwnProperty(property.toLowerCase())&&makeLogFunc(property);this.isImage=function(a){var b,c="";var d=["png","jpg","jpeg","gif","bmp"];var e=/\.([a-zA-Z0-9]+)(\?|\@|$)/;if(!a||!e.test(a))return!1;b=e.exec(a),c=b[1].toLowerCase();for(var f=0,g=d.length;g>f;f++)if(c===d[f])return!0;return!1},this.getFileExtension=function(a){var b=a.split(".");var c;return c=1===b.length||""===b[0]&&2===b.length?"":b.pop().toLowerCase()},this.utf8_encode=function(a){if(null===a||"undefined"==typeof a)return"";var b=a+"";var c="",d,e,f=0;d=e=0,f=b.length;for(var g=0;f>g;g++){var h=b.charCodeAt(g);var i=null;if(128>h)e++;else if(h>127&&2048>h)i=String.fromCharCode(h>>6|192,63&h|128);else if(63488&h^!0)i=String.fromCharCode(h>>12|224,h>>6&63|128,63&h|128);else{if(64512&h^!0)throw new RangeError("Unmatched trail surrogate at "+g);var j=b.charCodeAt(++g);if(64512&j^!0)throw new RangeError("Unmatched lead surrogate at "+(g-1));h=((1023&h)<<10)+(1023&j)+65536,i=String.fromCharCode(h>>18|240,h>>12&63|128,h>>6&63|128,63&h|128)}null!==i&&(e>d&&(c+=b.slice(d,e)),c+=i,d=e=g+1)}return e>d&&(c+=b.slice(d,f)),c},this.base64_encode=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,d,e,f,g,h,i,j,k=0,l=0,m="",n=[];if(!a)return a;a=this.utf8_encode(a+"");do c=a.charCodeAt(k++),d=a.charCodeAt(k++),e=a.charCodeAt(k++),j=c<<16|d<<8|e,f=j>>18&63,g=j>>12&63,h=j>>6&63,i=63&j,n[l++]=b.charAt(f)+b.charAt(g)+b.charAt(h)+b.charAt(i);while(kd;d++)b.push(that.stringifyJSON(a[d]));return"["+b.join(",")+"]"}if(null===a)return"null";var e=[];for(var f in a)a.hasOwnProperty(f)&&e.push(that.stringifyJSON(f)+":"+that.stringifyJSON(a[f]));return"{"+e.join(",")+"}";case"number":return a;case!1:return a;case"boolean":return a}},this.trim=function(a){return null===a?"":a.replace(/^\s+|\s+$/g,"")},this.uploader=function(a){var b=function(){var b=that.detectIEVersion();var c,d,e;var f="Safari"===mOxie.Env.browser&&mOxie.Env.version<=5&&"Windows"===mOxie.Env.os&&"7"===mOxie.Env.osVersion||"Safari"===mOxie.Env.browser&&"iOS"===mOxie.Env.os&&"7"===mOxie.Env.osVersion;b&&9>=b&&a.chunk_size&&a.runtimes.indexOf("flash")<0?a.chunk_size=0:f?a.chunk_size=0:(c=20,d=4<d&&(a.chunk_size=d))};var c=function(){if(a.uptoken)that.token=a.uptoken;else{var b=that.createAjax();b.open("GET",that.uptoken_url,!0),b.setRequestHeader("If-Modified-Since","0"),b.onreadystatechange=function(){if(4===b.readyState&&200===b.status){var a=that.parseJSON(b.responseText);that.token=a.uptoken}},b.send()}};var d=function(b,c,d){var e="",f=!1;if(!a.save_key)if(f=b.getOption&&b.getOption("unique_names"),f=f||b.settings&&b.settings.unique_names){var g=that.getFileExtension(c.name);e=g?c.id+"."+g:c.id}else e="function"==typeof d?d(b,c):c.name;return e};if(a.log_level&&(logger.level=a.log_level),!a.domain)throw"domain setting in options is required!";if(!a.browse_button)throw"browse_button setting in options is required!";logger.debug("init uploader start"),logger.debug("environment: ",mOxie.Env),logger.debug("userAgent: ",navigator.userAgent);var e={};var f=a.init&&a.init.Error;var g=a.init&&a.init.FileUploaded;a.init.Error=function(){},a.init.FileUploaded=function(){},that.uptoken_url=a.uptoken_url,that.token="",that.key_handler="function"==typeof a.init.Key?a.init.Key:"",this.domain=a.domain;var h="";var i={isResumeUpload:!1,resumeFilesize:0,startTime:"",currentTime:""};b(),logger.debug("invoke reset_chunk_size()"),logger.debug("op.chunk_size: ",a.chunk_size),plupload.extend(e,a,{url:qiniuUploadUrl,multipart_params:{token:""}}),logger.debug("option: ",e);var j=new plupload.Uploader(e);return logger.debug("new plupload.Uploader(option)"),j.bind("Init",function(b,d){logger.debug("Init event activated"),a.get_new_uptoken||c(),c()}),logger.debug("bind Init event"),j.bind("FilesAdded",function(a,b){logger.debug("FilesAdded event activated");var c=a.getOption&&a.getOption("auto_start");c=c||a.settings&&a.settings.auto_start,logger.debug("auto_start: ",c),logger.debug("files: ",b),c&&setTimeout(function(){a.start(),logger.debug("invoke up.start()")},0),a.refresh()}),logger.debug("bind FilesAdded event"),j.bind("BeforeUpload",function(b,e){logger.debug("BeforeUpload event activated"),e.speed=e.speed||0,h="",a.get_new_uptoken&&c();var f=function(b,c,e){i.startTime=(new Date).getTime();var f;f=a.save_key?{token:that.token}:{key:d(b,c,e),token:that.token},logger.debug("directUpload multipart_params_obj: ",f);var h=a.x_vars;if(void 0!==h&&"object"==typeof h)for(var j in h)h.hasOwnProperty(j)&&("function"==typeof h[j]?f["x:"+j]=h[j](b,c):"object"!=typeof h[j]&&(f["x:"+j]=h[j]));b.setOption({url:qiniuUploadUrl,multipart:!0,chunk_size:g()?a.max_file_size:void 0,multipart_params:f})};var g=function(){var a=navigator.userAgent.toLowerCase();return(a.match(/MicroMessenger/i)||"QQBrowser"===mOxie.Env.browser||a.match(/V1_AND_SQ/i))&&"android"===mOxie.Env.OS.toLowerCase()?!0:!1};var k=b.getOption&&b.getOption("chunk_size");if(k=k||b.settings&&b.settings.chunk_size,logger.debug("uploader.runtime: ",j.runtime),logger.debug("chunk_size: ",k),"html5"!==j.runtime&&"flash"!==j.runtime||!k)logger.debug("directUpload because uploader.runtime !== 'html5' || uploader.runtime !== 'flash' || !chunk_size"),f(b,e,that.key_handler);else if(e.sizen-o&&100!==l.percent&&e.size===l.total?(e.percent=l.percent,e.loaded=l.offset,h=l.ctx,i.isResumeUpload=!0,i.resumeFilesize=l.offset,l.offset+m>e.size&&(m=e.size-l.offset)):localStorage.removeItem(e.name)}i.startTime=(new Date).getTime(),b.setOption({url:qiniuUploadUrl+"/mkblk/"+m,multipart:!1,chunk_size:k,required_features:"chunks",headers:{Authorization:"UpToken "+that.token},multipart_params:{}})}}),logger.debug("bind BeforeUpload event"),j.bind("UploadProgress",function(a,b){logger.trace("UploadProgress event activated"),i.currentTime=(new Date).getTime();var c=i.currentTime-i.startTime;var d=b.loaded||0;i.isResumeUpload&&(d=b.loaded-i.resumeFilesize),b.speed=(d/c*1e3).toFixed(0)||0}),logger.debug("bind UploadProgress event"),j.bind("ChunkUploaded",function(a,b,c){logger.debug("ChunkUploaded event activated"),logger.debug("file: ",b),logger.debug("info: ",c);var d=that.parseJSON(c.response);logger.debug("res: ",d),h=h?h+","+d.ctx:d.ctx;var e=c.total-c.offset;var f=a.getOption&&a.getOption("chunk_size");f=f||a.settings&&a.settings.chunk_size,f>e&&(a.setOption({url:qiniuUploadUrl+"/mkblk/"+e}),logger.debug("up.setOption url: ",qiniuUploadUrl+"/mkblk/"+e)),localStorage.setItem(b.name,that.stringifyJSON({ctx:h,percent:b.percent,total:c.total,offset:c.offset,time:(new Date).getTime()}))}),logger.debug("bind ChunkUploaded event"),j.bind("Error",function(a){return function(b,c){logger.error("Error event activated"),logger.error("err: ",c);var d="";var e=c.file;if(e){switch(c.code){case plupload.FAILED:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.FILE_SIZE_ERROR:var f=b.getOption&&b.getOption("max_file_size");f=f||b.settings&&b.settings.max_file_size,d="\u6d4f\u89c8\u5668\u6700\u5927\u53ef\u4e0a\u4f20"+f+"\u3002\u66f4\u5927\u6587\u4ef6\u8bf7\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\u3002";break;case plupload.FILE_EXTENSION_ERROR:d="\u6587\u4ef6\u9a8c\u8bc1\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002";break;case plupload.HTTP_ERROR:if(""===c.response){d=c.message||"\u672a\u77e5\u7f51\u7edc\u9519\u8bef\u3002";break}var g=that.parseJSON(c.response);var h=g.error;switch(c.status){case 400:d="\u8bf7\u6c42\u62a5\u6587\u683c\u5f0f\u9519\u8bef\u3002";break;case 401:d="\u5ba2\u6237\u7aef\u8ba4\u8bc1\u6388\u6743\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 405:d="\u5ba2\u6237\u7aef\u8bf7\u6c42\u9519\u8bef\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 579:d="\u8d44\u6e90\u4e0a\u4f20\u6210\u529f\uff0c\u4f46\u56de\u8c03\u5931\u8d25\u3002";break;case 599:d="\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 614:d="\u6587\u4ef6\u5df2\u5b58\u5728\u3002";try{g=that.parseJSON(g.error),h=g.error||"file exists"}catch(i){h=g.error||"file exists"}break;case 631:d="\u6307\u5b9a\u7a7a\u95f4\u4e0d\u5b58\u5728\u3002";break;case 701:d="\u4e0a\u4f20\u6570\u636e\u5757\u6821\u9a8c\u51fa\u9519\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;default:d="\u672a\u77e5\u9519\u8bef\u3002"}d=d+"("+c.status+"\uff1a"+h+")";break;case plupload.SECURITY_ERROR:d="\u5b89\u5168\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002";break;case plupload.GENERIC_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.IO_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.INIT_ERROR:d="\u7f51\u7ad9\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002",j.destroy();break;default:d=c.message+c.details}a&&a(b,c,d)}b.refresh()}}(f)),logger.debug("bind Error event"),j.bind("FileUploaded",function(b){return function(c,e,f){logger.debug("FileUploaded event activated"),logger.debug("file: ",e),logger.debug("info: ",f);var g=function(c,d,e){if(a.downtoken_url){var f=that.createAjax();f.open("POST",a.downtoken_url,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),f.onreadystatechange=function(){if(4===f.readyState)if(200===f.status){var a;try{a=that.parseJSON(f.responseText)}catch(g){throw"invalid json format"}var h={};plupload.extend(h,that.parseJSON(e),a),b&&b(c,d,that.stringifyJSON(h))}else j.trigger("Error",{status:f.status,response:f.responseText,file:d,code:plupload.HTTP_ERROR})},f.send("key="+that.parseJSON(e).key+"&domain="+a.domain)}else b&&b(c,d,e)};var i=that.parseJSON(f.response);if(h=h?h:i.ctx,logger.debug("ctx: ",h),h){var k="";logger.debug("save_key: ",a.save_key),a.save_key||(k=d(c,e,that.key_handler),k=k?"/key/"+that.URLSafeBase64Encode(k):"");var l="/fname/"+that.URLSafeBase64Encode(e.name);logger.debug("op.x_vars: ",a.x_vars);var m=a.x_vars,n="",o="";if(void 0!==m&&"object"==typeof m)for(var p in m)m.hasOwnProperty(p)&&("function"==typeof m[p]?n=that.URLSafeBase64Encode(m[p](c,e)):"object"!=typeof m[p]&&(n=that.URLSafeBase64Encode(m[p])),o+="/x:"+p+"/"+n);var q=qiniuUploadUrl+"/mkfile/"+e.size+k+l+o;var r=that.detectIEVersion();var s;r&&9>=r?(s=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):s=that.createAjax(),s.open("POST",q,!0),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8"),s.setRequestHeader("Authorization","UpToken "+that.token);var t=function(){if(logger.debug("ajax.readyState: ",s.readyState),4===s.readyState){localStorage.removeItem(e.name);var a;200===s.status?(a=s.responseText,logger.debug("mkfile is success: ",a),g(c,e,a)):(a={status:s.status,response:s.responseText,file:e,code:-200},logger.debug("mkfile is error: ",a),j.trigger("Error",a))}};r&&9>=r?s.bind("readystatechange",t):s.onreadystatechange=t,s.send(h),logger.debug("mkfile: ",q)}else g(c,e,f.response)}}(g)),logger.debug("bind FileUploaded event"),j.init(),logger.debug("invoke uploader.init()"),logger.debug("init uploader end"),j},this.getUrl=function(a){if(!a)return!1;a=encodeURI(a);var b=this.domain;return"/"!==b.slice(b.length-1)&&(b+="/"),b+a},this.imageView2=function(a,b){var c=a.mode||"",d=a.w||"",e=a.h||"",f=a.q||"",g=a.format||"";if(!c)return!1;if(!d&&!e)return!1;var h="imageView2/"+c;return h+=d?"/w/"+d:"",h+=e?"/h/"+e:"",h+=f?"/q/"+f:"",h+=g?"/format/"+g:"",b&&(h=this.getUrl(b)+"?"+h),h},this.imageMogr2=function(a,b){var c=a["auto-orient"]||"",d=a.thumbnail||"",e=a.strip||"",f=a.gravity||"",g=a.crop||"",h=a.quality||"",i=a.rotate||"",j=a.format||"",k=a.blur||"";var l="imageMogr2";return l+=c?"/auto-orient":"",l+=d?"/thumbnail/"+d:"",l+=e?"/strip":"",l+=f?"/gravity/"+f:"",l+=h?"/quality/"+h:"",l+=g?"/crop/"+g:"",l+=i?"/rotate/"+i:"",l+=j?"/format/"+j:"",l+=k?"/blur/"+k:"",b&&(l=this.getUrl(b)+"?"+l),l},this.watermark=function(a,b){var c=a.mode;if(!c)return!1;var d="watermark/"+c;if(1===c){var e=a.image||"";if(!e)return!1;d+=e?"/image/"+this.URLSafeBase64Encode(e):""}else{if(2!==c)return!1;var f=a.text?a.text:"",g=a.font?a.font:"",h=a.fontsize?a.fontsize:"",i=a.fill?a.fill:"";if(!f)return!1;d+=f?"/text/"+this.URLSafeBase64Encode(f):"",d+=g?"/font/"+this.URLSafeBase64Encode(g):"",d+=h?"/fontsize/"+h:"",d+=i?"/fill/"+this.URLSafeBase64Encode(i):""}var j=a.dissolve||"",k=a.gravity||"",l=a.dx||"",m=a.dy||"";return d+=j?"/dissolve/"+j:"",d+=k?"/gravity/"+k:"",d+=l?"/dx/"+l:"",d+=m?"/dy/"+m:"",b&&(d=this.getUrl(b)+"?"+d),d},this.imageInfo=function(a){if(!a)return!1;var b=this.getUrl(a)+"?imageInfo";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.exif=function(a){if(!a)return!1;var b=this.getUrl(a)+"?exif";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.get=function(a,b){return b&&a?"exif"===a?this.exif(b):"imageInfo"===a?this.imageInfo(b):!1:!1},this.pipeline=function(a,b){var c="[object Array]"===Object.prototype.toString.call(a);var d,e,f="";if(c){for(var g=0,h=a.length;h>g;g++){if(d=a[g],!d.fop)return!1;switch(d.fop){case"watermark":f+=this.watermark(d)+"|";break;case"imageView2":f+=this.imageView2(d)+"|";break;case"imageMogr2":f+=this.imageMogr2(d)+"|";break;default:e=!0}if(e)return!1}if(b){f=this.getUrl(b)+"?"+f;var i=f.length;"|"===f.slice(i-1)&&(f=f.slice(0,i-1))}return f}return!1}}var Qiniu=new QiniuJsSDK;global.Qiniu=Qiniu,global.QiniuJsSDK=QiniuJsSDK}(window); +!function(global){function createCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="; expires="+d.toGMTString();document.cookie=a+"="+b+e+"; path=/"}function readCookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0,e=c.length;e>d;d++){var f=c[d];while(" "===f.charAt(0))f=f.substring(1,f.length);if(0===f.indexOf(b))return f.substring(b.length,f.length)}return null}window.localStorage||(window.localStorage={setItem:function(a,b){createCookie(a,b,30)},getItem:function(a){return readCookie(a)},removeItem:function(a){createCookie(a,"",-1)}});function QiniuJsSDK(){var that=this;this.detectIEVersion=function(){var a=4,b=document.createElement("div"),c=b.getElementsByTagName("i");while(b.innerHTML="",c[0])a++;return a>4?a:!1};var logger={MUTE:0,FATA:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,TRACE:6,level:0};function log(a,b){var c="[qiniu-js-sdk]["+a+"]";if(that.detectIEVersion()){var d=c;for(var e=0;e=logger[a]){var c=Array.prototype.slice.call(arguments);log(b,c)}}}for(var property in logger)logger.hasOwnProperty(property)&&"number"==typeof logger[property]&&!logger.hasOwnProperty(property.toLowerCase())&&makeLogFunc(property);var qiniuUploadUrl;qiniuUploadUrl="https:"===window.location.protocol?"https://up.qbox.me":"http://upload.qiniu.com";var qiniuUploadUrls=["http://upload.qiniu.com","http://up.qiniu.com"];var changeUrlTimes=0;this.resetUploadUrl=function(){if("https:"===window.location.protocol)qiniuUploadUrl="https://up.qbox.me";else{var a=changeUrlTimes%qiniuUploadUrls.length;qiniuUploadUrl=qiniuUploadUrls[a],changeUrlTimes++}logger.debug("resetUploadUrl: "+qiniuUploadUrl)},this.resetUploadUrl(),this.isImage=function(a){var b,c="";var d=["png","jpg","jpeg","gif","bmp"];var e=/\.([a-zA-Z0-9]+)(\?|\@|$)/;if(!a||!e.test(a))return!1;b=e.exec(a),c=b[1].toLowerCase();for(var f=0,g=d.length;g>f;f++)if(c===d[f])return!0;return!1},this.getFileExtension=function(a){var b=a.split(".");var c;return c=1===b.length||""===b[0]&&2===b.length?"":b.pop().toLowerCase()},this.utf8_encode=function(a){if(null===a||"undefined"==typeof a)return"";var b=a+"";var c="",d,e,f=0;d=e=0,f=b.length;for(var g=0;f>g;g++){var h=b.charCodeAt(g);var i=null;if(128>h)e++;else if(h>127&&2048>h)i=String.fromCharCode(h>>6|192,63&h|128);else if(63488&h^!0)i=String.fromCharCode(h>>12|224,h>>6&63|128,63&h|128);else{if(64512&h^!0)throw new RangeError("Unmatched trail surrogate at "+g);var j=b.charCodeAt(++g);if(64512&j^!0)throw new RangeError("Unmatched lead surrogate at "+(g-1));h=((1023&h)<<10)+(1023&j)+65536,i=String.fromCharCode(h>>18|240,h>>12&63|128,h>>6&63|128,63&h|128)}null!==i&&(e>d&&(c+=b.slice(d,e)),c+=i,d=e=g+1)}return e>d&&(c+=b.slice(d,f)),c},this.base64_encode=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,d,e,f,g,h,i,j,k=0,l=0,m="",n=[];if(!a)return a;a=this.utf8_encode(a+"");do c=a.charCodeAt(k++),d=a.charCodeAt(k++),e=a.charCodeAt(k++),j=c<<16|d<<8|e,f=j>>18&63,g=j>>12&63,h=j>>6&63,i=63&j,n[l++]=b.charAt(f)+b.charAt(g)+b.charAt(h)+b.charAt(i);while(kd;d++)b.push(that.stringifyJSON(a[d]));return"["+b.join(",")+"]"}if(null===a)return"null";var e=[];for(var f in a)a.hasOwnProperty(f)&&e.push(that.stringifyJSON(f)+":"+that.stringifyJSON(a[f]));return"{"+e.join(",")+"}";case"number":return a;case!1:return a;case"boolean":return a}},this.trim=function(a){return null===a?"":a.replace(/^\s+|\s+$/g,"")},this.uploader=function(a){var b=function(){var b=that.detectIEVersion();var c,d,e;var f="Safari"===mOxie.Env.browser&&mOxie.Env.version<=5&&"Windows"===mOxie.Env.os&&"7"===mOxie.Env.osVersion||"Safari"===mOxie.Env.browser&&"iOS"===mOxie.Env.os&&"7"===mOxie.Env.osVersion;b&&9>=b&&a.chunk_size&&a.runtimes.indexOf("flash")<0?a.chunk_size=0:f?a.chunk_size=0:(c=20,d=4<d&&(a.chunk_size=d))};var c=function(){if(a.uptoken)that.token=a.uptoken;else{var b=that.createAjax();b.open("GET",that.uptoken_url,!0),b.setRequestHeader("If-Modified-Since","0"),b.onreadystatechange=function(){if(4===b.readyState&&200===b.status){var a=that.parseJSON(b.responseText);that.token=a.uptoken}},b.send()}};var d=function(b,c,d){var e="",f=!1;if(!a.save_key)if(f=b.getOption&&b.getOption("unique_names"),f=f||b.settings&&b.settings.unique_names){var g=that.getFileExtension(c.name);e=g?c.id+"."+g:c.id}else e="function"==typeof d?d(b,c):c.name;return e};if(a.log_level&&(logger.level=a.log_level),!a.domain)throw"domain setting in options is required!";if(!a.browse_button)throw"browse_button setting in options is required!";logger.debug("init uploader start"),logger.debug("environment: ",mOxie.Env),logger.debug("userAgent: ",navigator.userAgent);var e={};var f=a.init&&a.init.Error;var g=a.init&&a.init.FileUploaded;a.init.Error=function(){},a.init.FileUploaded=function(){},that.uptoken_url=a.uptoken_url,that.token="",that.key_handler="function"==typeof a.init.Key?a.init.Key:"",this.domain=a.domain;var h="";var i={isResumeUpload:!1,resumeFilesize:0,startTime:"",currentTime:""};b(),logger.debug("invoke reset_chunk_size()"),logger.debug("op.chunk_size: ",a.chunk_size),plupload.extend(e,a,{url:qiniuUploadUrl,multipart_params:{token:""}}),logger.debug("option: ",e);var j=new plupload.Uploader(e);logger.debug("new plupload.Uploader(option)"),j.bind("Init",function(b,d){logger.debug("Init event activated"),a.get_new_uptoken||c(),c()}),logger.debug("bind Init event"),j.bind("FilesAdded",function(a,b){logger.debug("FilesAdded event activated");var c=a.getOption&&a.getOption("auto_start");c=c||a.settings&&a.settings.auto_start,logger.debug("auto_start: ",c),logger.debug("files: ",b),c&&setTimeout(function(){a.start(),logger.debug("invoke up.start()")},0),a.refresh()}),logger.debug("bind FilesAdded event"),j.bind("BeforeUpload",function(b,e){logger.debug("BeforeUpload event activated"),e.speed=e.speed||0,h="",a.get_new_uptoken&&c();var f=function(b,c,e){i.startTime=(new Date).getTime();var f;f=a.save_key?{token:that.token}:{key:d(b,c,e),token:that.token},logger.debug("directUpload multipart_params_obj: ",f);var h=a.x_vars;if(void 0!==h&&"object"==typeof h)for(var j in h)h.hasOwnProperty(j)&&("function"==typeof h[j]?f["x:"+j]=h[j](b,c):"object"!=typeof h[j]&&(f["x:"+j]=h[j]));b.setOption({url:qiniuUploadUrl,multipart:!0,chunk_size:g()?a.max_file_size:void 0,multipart_params:f})};var g=function(){var a=navigator.userAgent.toLowerCase();return(a.match(/MicroMessenger/i)||"QQBrowser"===mOxie.Env.browser||a.match(/V1_AND_SQ/i))&&"android"===mOxie.Env.OS.toLowerCase()?!0:!1};var k=b.getOption&&b.getOption("chunk_size");if(k=k||b.settings&&b.settings.chunk_size,logger.debug("uploader.runtime: ",j.runtime),logger.debug("chunk_size: ",k),"html5"!==j.runtime&&"flash"!==j.runtime||!k)logger.debug("directUpload because uploader.runtime !== 'html5' || uploader.runtime !== 'flash' || !chunk_size"),f(b,e,that.key_handler);else if(e.sizen-o&&100!==l.percent&&e.size===l.total?(e.percent=l.percent,e.loaded=l.offset,h=l.ctx,i.isResumeUpload=!0,i.resumeFilesize=l.offset,l.offset+m>e.size&&(m=e.size-l.offset)):localStorage.removeItem(e.name)}i.startTime=(new Date).getTime(),b.setOption({url:qiniuUploadUrl+"/mkblk/"+m,multipart:!1,chunk_size:k,required_features:"chunks",headers:{Authorization:"UpToken "+that.token},multipart_params:{}})}}),logger.debug("bind BeforeUpload event"),j.bind("UploadProgress",function(a,b){logger.trace("UploadProgress event activated"),i.currentTime=(new Date).getTime();var c=i.currentTime-i.startTime;var d=b.loaded||0;i.isResumeUpload&&(d=b.loaded-i.resumeFilesize),b.speed=(d/c*1e3).toFixed(0)||0}),logger.debug("bind UploadProgress event"),j.bind("ChunkUploaded",function(a,b,c){logger.debug("ChunkUploaded event activated"),logger.debug("file: ",b),logger.debug("info: ",c);var d=that.parseJSON(c.response);logger.debug("res: ",d),h=h?h+","+d.ctx:d.ctx;var e=c.total-c.offset;var f=a.getOption&&a.getOption("chunk_size");f=f||a.settings&&a.settings.chunk_size,f>e&&(a.setOption({url:qiniuUploadUrl+"/mkblk/"+e}),logger.debug("up.setOption url: ",qiniuUploadUrl+"/mkblk/"+e)),localStorage.setItem(b.name,that.stringifyJSON({ctx:h,percent:b.percent,total:c.total,offset:c.offset,time:(new Date).getTime()}))}),logger.debug("bind ChunkUploaded event");var k=qiniuUploadUrls.length;var l=function(a){return k-->0?(setTimeout(function(){that.resetUploadUrl(),a.status=plupload.QUEUED,j.stop(),j.start()},0),!0):(k=qiniuUploadUrls.length,!1)};return j.bind("Error",function(a){return function(b,c){logger.error("Error event activated"),logger.error("err: ",c);var d="";var e=c.file;if(e){switch(c.code){case plupload.FAILED:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.FILE_SIZE_ERROR:var f=b.getOption&&b.getOption("max_file_size");f=f||b.settings&&b.settings.max_file_size,d="\u6d4f\u89c8\u5668\u6700\u5927\u53ef\u4e0a\u4f20"+f+"\u3002\u66f4\u5927\u6587\u4ef6\u8bf7\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\u3002";break;case plupload.FILE_EXTENSION_ERROR:d="\u6587\u4ef6\u9a8c\u8bc1\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002";break;case plupload.HTTP_ERROR:if(""===c.response){if(d=c.message||"\u672a\u77e5\u7f51\u7edc\u9519\u8bef\u3002",!l(e))return;break}var g=that.parseJSON(c.response);var h=g.error;switch(c.status){case 400:d="\u8bf7\u6c42\u62a5\u6587\u683c\u5f0f\u9519\u8bef\u3002";break;case 401:d="\u5ba2\u6237\u7aef\u8ba4\u8bc1\u6388\u6743\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 405:d="\u5ba2\u6237\u7aef\u8bf7\u6c42\u9519\u8bef\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 579:d="\u8d44\u6e90\u4e0a\u4f20\u6210\u529f\uff0c\u4f46\u56de\u8c03\u5931\u8d25\u3002";break;case 599:if(d="\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002",!l(e))return;break;case 614:d="\u6587\u4ef6\u5df2\u5b58\u5728\u3002";try{g=that.parseJSON(g.error),h=g.error||"file exists"}catch(i){h=g.error||"file exists"}break;case 631:d="\u6307\u5b9a\u7a7a\u95f4\u4e0d\u5b58\u5728\u3002";break;case 701:d="\u4e0a\u4f20\u6570\u636e\u5757\u6821\u9a8c\u51fa\u9519\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;default:if(d="\u672a\u77e5\u9519\u8bef\u3002",!l(e))return}d=d+"("+c.status+"\uff1a"+h+")";break;case plupload.SECURITY_ERROR:d="\u5b89\u5168\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002";break;case plupload.GENERIC_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.IO_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.INIT_ERROR:d="\u7f51\u7ad9\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002",j.destroy();break;default:if(d=c.message+c.details,!l(e))return}a&&a(b,c,d)}b.refresh()}}(f)),logger.debug("bind Error event"),j.bind("FileUploaded",function(b){return function(c,e,f){logger.debug("FileUploaded event activated"),logger.debug("file: ",e),logger.debug("info: ",f);var g=function(c,d,e){if(a.downtoken_url){var f=that.createAjax();f.open("POST",a.downtoken_url,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),f.onreadystatechange=function(){if(4===f.readyState)if(200===f.status){var a;try{a=that.parseJSON(f.responseText)}catch(g){throw"invalid json format"}var h={};plupload.extend(h,that.parseJSON(e),a),b&&b(c,d,that.stringifyJSON(h))}else j.trigger("Error",{status:f.status,response:f.responseText,file:d,code:plupload.HTTP_ERROR})},f.send("key="+that.parseJSON(e).key+"&domain="+a.domain)}else b&&b(c,d,e)};var i=that.parseJSON(f.response);if(h=h?h:i.ctx,logger.debug("ctx: ",h),h){var k="";logger.debug("save_key: ",a.save_key),a.save_key||(k=d(c,e,that.key_handler),k=k?"/key/"+that.URLSafeBase64Encode(k):"");var l="/fname/"+that.URLSafeBase64Encode(e.name);logger.debug("op.x_vars: ",a.x_vars);var m=a.x_vars,n="",o="";if(void 0!==m&&"object"==typeof m)for(var p in m)m.hasOwnProperty(p)&&("function"==typeof m[p]?n=that.URLSafeBase64Encode(m[p](c,e)):"object"!=typeof m[p]&&(n=that.URLSafeBase64Encode(m[p])),o+="/x:"+p+"/"+n);var q=qiniuUploadUrl+"/mkfile/"+e.size+k+l+o;var r=that.detectIEVersion();var s;r&&9>=r?(s=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):s=that.createAjax(),s.open("POST",q,!0),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8"),s.setRequestHeader("Authorization","UpToken "+that.token);var t=function(){if(logger.debug("ajax.readyState: ",s.readyState),4===s.readyState){localStorage.removeItem(e.name);var a;200===s.status?(a=s.responseText,logger.debug("mkfile is success: ",a),g(c,e,a)):(a={status:s.status,response:s.responseText,file:e,code:-200},logger.debug("mkfile is error: ",a),j.trigger("Error",a))}};r&&9>=r?s.bind("readystatechange",t):s.onreadystatechange=t,s.send(h),logger.debug("mkfile: ",q)}else g(c,e,f.response)}}(g)),logger.debug("bind FileUploaded event"),j.init(),logger.debug("invoke uploader.init()"),logger.debug("init uploader end"),j},this.getUrl=function(a){if(!a)return!1;a=encodeURI(a);var b=this.domain;return"/"!==b.slice(b.length-1)&&(b+="/"),b+a},this.imageView2=function(a,b){var c=a.mode||"",d=a.w||"",e=a.h||"",f=a.q||"",g=a.format||"";if(!c)return!1;if(!d&&!e)return!1;var h="imageView2/"+c;return h+=d?"/w/"+d:"",h+=e?"/h/"+e:"",h+=f?"/q/"+f:"",h+=g?"/format/"+g:"",b&&(h=this.getUrl(b)+"?"+h),h},this.imageMogr2=function(a,b){var c=a["auto-orient"]||"",d=a.thumbnail||"",e=a.strip||"",f=a.gravity||"",g=a.crop||"",h=a.quality||"",i=a.rotate||"",j=a.format||"",k=a.blur||"";var l="imageMogr2";return l+=c?"/auto-orient":"",l+=d?"/thumbnail/"+d:"",l+=e?"/strip":"",l+=f?"/gravity/"+f:"",l+=h?"/quality/"+h:"",l+=g?"/crop/"+g:"",l+=i?"/rotate/"+i:"",l+=j?"/format/"+j:"",l+=k?"/blur/"+k:"",b&&(l=this.getUrl(b)+"?"+l),l},this.watermark=function(a,b){var c=a.mode;if(!c)return!1;var d="watermark/"+c;if(1===c){var e=a.image||"";if(!e)return!1;d+=e?"/image/"+this.URLSafeBase64Encode(e):""}else{if(2!==c)return!1;var f=a.text?a.text:"",g=a.font?a.font:"",h=a.fontsize?a.fontsize:"",i=a.fill?a.fill:"";if(!f)return!1;d+=f?"/text/"+this.URLSafeBase64Encode(f):"",d+=g?"/font/"+this.URLSafeBase64Encode(g):"",d+=h?"/fontsize/"+h:"",d+=i?"/fill/"+this.URLSafeBase64Encode(i):""}var j=a.dissolve||"",k=a.gravity||"",l=a.dx||"",m=a.dy||"";return d+=j?"/dissolve/"+j:"",d+=k?"/gravity/"+k:"",d+=l?"/dx/"+l:"",d+=m?"/dy/"+m:"",b&&(d=this.getUrl(b)+"?"+d),d},this.imageInfo=function(a){if(!a)return!1;var b=this.getUrl(a)+"?imageInfo";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.exif=function(a){if(!a)return!1;var b=this.getUrl(a)+"?exif";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.get=function(a,b){return b&&a?"exif"===a?this.exif(b):"imageInfo"===a?this.imageInfo(b):!1:!1},this.pipeline=function(a,b){var c="[object Array]"===Object.prototype.toString.call(a);var d,e,f="";if(c){for(var g=0,h=a.length;h>g;g++){if(d=a[g],!d.fop)return!1;switch(d.fop){case"watermark":f+=this.watermark(d)+"|";break;case"imageView2":f+=this.imageView2(d)+"|";break;case"imageMogr2":f+=this.imageMogr2(d)+"|";break;default:e=!0}if(e)return!1}if(b){f=this.getUrl(b)+"?"+f;var i=f.length;"|"===f.slice(i-1)&&(f=f.slice(0,i-1))}return f}return!1}}var Qiniu=new QiniuJsSDK;global.Qiniu=Qiniu,global.QiniuJsSDK=QiniuJsSDK}(window); //# sourceMappingURL=dist/qiniu.min.map \ No newline at end of file diff --git a/dist/qiniu.min.map b/dist/qiniu.min.map index 4ec66437..3810d3d2 100644 --- a/dist/qiniu.min.map +++ b/dist/qiniu.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/qiniu.min.js","sources":["dist/qiniu.js"],"names":["global","createCookie","key","value","exp","date","Date","setTime","getTime","expires","toGMTString","document","cookie","readCookie","nameEQ","ca","split","i","max","length","c","charAt","substring","indexOf","window","localStorage","setItem","getItem","removeItem","QiniuJsSDK","that","this","qiniuUploadUrl","location","protocol","detectIEVersion","v","div","createElement","all","getElementsByTagName","innerHTML","logger","MUTE","FATA","ERROR","WARN","INFO","DEBUG","TRACE","level","log","type","args","header","msg","stringifyJSON","console","unshift","apply","makeLogFunc","code","func","toLowerCase","Array","prototype","slice","call","arguments","property","hasOwnProperty","isImage","url","res","suffix","imageSuffixes","suffixMatch","test","exec","l","getFileExtension","filename","tempArr","ext","pop","utf8_encode","argString","string","utftext","start","end","stringl","n","c1","charCodeAt","enc","String","fromCharCode","RangeError","c2","base64_encode","data","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","tmp_arr","join","URLSafeBase64Encode","replace","createAjax","argument","xmlhttp","XMLHttpRequest","ActiveXObject","parseJSON","JSON","parse","rx_dangerous","text","lastIndex","a","toString","eval","obj","stringify","map","strArr","len","push","trim","uploader","op","reset_chunk_size","ie","BLOCK_BITS","MAX_CHUNK_SIZE","chunk_size","isSpecialSafari","mOxie","Env","browser","version","os","osVersion","runtimes","plupload","parseSize","getUpToken","uptoken","token","ajax","open","uptoken_url","setRequestHeader","onreadystatechange","readyState","status","responseText","send","getFileKey","up","file","unique_names","save_key","getOption","settings","name","id","log_level","domain","browse_button","debug","navigator","userAgent","option","_Error_Handler","init","Error","_FileUploaded_Handler","FileUploaded","key_handler","Key","ctx","speedCalInfo","isResumeUpload","resumeFilesize","startTime","currentTime","extend","multipart_params","Uploader","bind","params","get_new_uptoken","files","auto_start","setTimeout","refresh","speed","directUpload","multipart_params_obj","x_vars","undefined","x_key","setOption","multipart","is_android_weixin_or_qq","max_file_size","ua","match","OS","runtime","size","localFileInfo","blockSize","now","before","time","aDay","percent","total","loaded","offset","required_features","headers","Authorization","trace","timeUsed","fileUploaded","toFixed","info","response","leftSize","err","error","errTip","FAILED","FILE_SIZE_ERROR","FILE_EXTENSION_ERROR","HTTP_ERROR","message","errorObj","errorText","e","SECURITY_ERROR","GENERIC_ERROR","IO_ERROR","INIT_ERROR","destroy","details","last_step","downtoken_url","ajax_downtoken","res_downtoken","info_extended","trigger","fname","x_val","x_vars_url","swf_url","flash_swf_url","getUrl","encodeURI","imageView2","mode","w","h","q","format","imageUrl","imageMogr2","auto_orient","thumbnail","strip","gravity","crop","quality","rotate","blur","watermark","image","font","fontsize","fill","dissolve","dx","dy","imageInfo","xhr","exif","get","pipeline","arr","isArray","Object","errOp","fop","Qiniu"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/qiniu.min.js","sources":["dist/qiniu.js"],"names":["global","createCookie","key","value","exp","date","Date","setTime","getTime","expires","toGMTString","document","cookie","readCookie","nameEQ","ca","split","i","max","length","c","charAt","substring","indexOf","window","localStorage","setItem","getItem","removeItem","QiniuJsSDK","that","this","detectIEVersion","v","div","createElement","all","getElementsByTagName","innerHTML","logger","MUTE","FATA","ERROR","WARN","INFO","DEBUG","TRACE","level","log","type","args","header","msg","stringifyJSON","console","unshift","apply","makeLogFunc","code","func","toLowerCase","Array","prototype","slice","call","arguments","property","hasOwnProperty","qiniuUploadUrl","location","protocol","qiniuUploadUrls","changeUrlTimes","resetUploadUrl","debug","isImage","url","res","suffix","imageSuffixes","suffixMatch","test","exec","l","getFileExtension","filename","tempArr","ext","pop","utf8_encode","argString","string","utftext","start","end","stringl","n","c1","charCodeAt","enc","String","fromCharCode","RangeError","c2","base64_encode","data","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","tmp_arr","join","URLSafeBase64Encode","replace","createAjax","argument","xmlhttp","XMLHttpRequest","ActiveXObject","parseJSON","JSON","parse","rx_dangerous","text","lastIndex","a","toString","eval","obj","stringify","map","strArr","len","push","trim","uploader","op","reset_chunk_size","ie","BLOCK_BITS","MAX_CHUNK_SIZE","chunk_size","isSpecialSafari","mOxie","Env","browser","version","os","osVersion","runtimes","plupload","parseSize","getUpToken","uptoken","token","ajax","open","uptoken_url","setRequestHeader","onreadystatechange","readyState","status","responseText","send","getFileKey","up","file","unique_names","save_key","getOption","settings","name","id","log_level","domain","browse_button","navigator","userAgent","option","_Error_Handler","init","Error","_FileUploaded_Handler","FileUploaded","key_handler","Key","ctx","speedCalInfo","isResumeUpload","resumeFilesize","startTime","currentTime","extend","multipart_params","Uploader","bind","params","get_new_uptoken","files","auto_start","setTimeout","refresh","speed","directUpload","multipart_params_obj","x_vars","undefined","x_key","setOption","multipart","is_android_weixin_or_qq","max_file_size","ua","match","OS","runtime","size","localFileInfo","blockSize","now","before","time","aDay","percent","total","loaded","offset","required_features","headers","Authorization","trace","timeUsed","fileUploaded","toFixed","info","response","leftSize","retries","unknow_error_retry","QUEUED","stop","err","error","errTip","FAILED","FILE_SIZE_ERROR","FILE_EXTENSION_ERROR","HTTP_ERROR","message","errorObj","errorText","e","SECURITY_ERROR","GENERIC_ERROR","IO_ERROR","INIT_ERROR","destroy","details","last_step","downtoken_url","ajax_downtoken","res_downtoken","info_extended","trigger","fname","x_val","x_vars_url","swf_url","flash_swf_url","getUrl","encodeURI","imageView2","mode","w","h","q","format","imageUrl","imageMogr2","auto_orient","thumbnail","strip","gravity","crop","quality","rotate","blur","watermark","image","font","fontsize","fill","dissolve","dx","dy","imageInfo","xhr","exif","get","pipeline","arr","isArray","Object","errOp","fop","Qiniu"],"mappings":";CAgBC,SAAWA,QAQZ,QAASC,cAAaC,EAAKC,EAAOC,GAC9B,GAAIC,GAAO,GAAIC,KACfD,GAAKE,QAAQF,EAAKG,UAAmB,GAANJ,EAAW,GAAK,GAAK,IACpD,IAAIK,GAAU,aAAeJ,EAAKK,aAClCC,UAASC,OAASV,EAAM,IAAMC,EAAQM,EAAU,WAOpD,QAASI,YAAWX,GAChB,GAAIY,GAASZ,EAAM,GACnB,IAAIa,GAAKJ,SAASC,OAAOI,MAAM,IAC/B,KAAK,GAAIC,GAAI,EAAGC,EAAMH,EAAGI,OAAYD,EAAJD,EAASA,IAAK,CAC3C,GAAIG,GAAIL,EAAGE,EACX,OAAuB,MAAhBG,EAAEC,OAAO,GACZD,EAAIA,EAAEE,UAAU,EAAGF,EAAED,OAEzB,IAA0B,IAAtBC,EAAEG,QAAQT,GACV,MAAOM,GAAEE,UAAUR,EAAOK,OAAQC,EAAED,QAG5C,MAAO,MAKLK,OAAOC,eACTD,OAAOC,cACHC,QAAS,SAAUxB,EAAKC,GACpBF,aAAaC,EAAKC,EAAO,KAE7BwB,QAAS,SAAUzB,GACf,MAAOW,YAAWX,IAEtB0B,WAAY,SAAU1B,GAClBD,aAAaC,EAAK,GAAI,MAKlC,SAAS2B,cAEL,GAAIC,MAAOC,IAUXA,MAAKC,gBAAkB,WACnB,GAAIC,GAAI,EACJC,EAAMvB,SAASwB,cAAc,OAC7BC,EAAMF,EAAIG,qBAAqB,IACnC,OACIH,EAAII,UAAY,iBAAmBL,EAAI,wBACvCG,EAAI,GAEJH,GAEJ,OAAOA,GAAI,EAAIA,GAAI,EAGvB,IAAIM,SACAC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,MAAO,EAGX,SAASC,KAAIC,EAAMC,GACf,GAAIC,GAAS,kBAAkBF,EAAK,GACpC,IAAInB,KAAKE,kBAAmB,CAIxB,GAAIoB,GAAMD,CACV,KAAK,GAAIlC,GAAI,EAAGA,EAAIiC,EAAK/B,OAAQF,IAC7BmC,GAAKtB,KAAKuB,cAAcH,EAAKjC,GAEjCqC,SAAQN,IAAII,OAEZF,GAAKK,QAAQJ,GACbG,QAAQN,IAAIQ,MAAMF,QAASJ,GAInC,QAASO,aAAYC,GACjB,GAAIC,GAAOD,EAAKE,aAChBrB,QAAOoB,GAAQ,WAGX,GAAGnC,OAAO8B,SAAW9B,OAAO8B,QAAQN,KAAOT,OAAOQ,OAAOR,OAAOmB,GAAM,CAClE,GAAIR,GAAOW,MAAMC,UAAUC,MAAMC,KAAKC,UACtCjB,KAAIW,EAAKT,KAKrB,IAAK,GAAIgB,YAAY3B,QACbA,OAAO4B,eAAeD,WAA2C,gBAAtB3B,QAAO2B,YAA4B3B,OAAO4B,eAAeD,SAASN,gBAC7GH,YAAYS,SAKpB,IAAIE,eAEAA,gBAD6B,WAA7B5C,OAAO6C,SAASC,SACC,qBAEA,yBAQrB,IAAIC,kBACA,0BACA,sBAGJ,IAAIC,gBAAiB,CASrBzC,MAAK0C,eAAiB,WAClB,GAAiC,WAA7BjD,OAAO6C,SAASC,SAChBF,eAAiB,yBACd,CACH,GAAInD,GAAIuD,eAAiBD,gBAAgBpD,MACzCiD,gBAAiBG,gBAAgBtD,GACjCuD,iBAEJjC,OAAOmC,MAAM,mBAAmBN,iBAGpCrC,KAAK0C,iBAQL1C,KAAK4C,QAAU,SAASC,GACpB,GAAIC,GAAKC,EAAS,EAClB,IAAIC,IAAiB,MAAO,MAAO,OAAQ,MAAO,MAClD,IAAIC,GAAc,2BAElB,KAAKJ,IAAQI,EAAYC,KAAKL,GAC1B,OAAO,CAEXC,GAAMG,EAAYE,KAAKN,GACvBE,EAASD,EAAI,GAAGjB,aAChB,KAAK,GAAI3C,GAAI,EAAGkE,EAAIJ,EAAc5D,OAAYgE,EAAJlE,EAAOA,IAC7C,GAAI6D,IAAWC,EAAc9D,GACzB,OAAO,CAGf,QAAO,GAWXc,KAAKqD,iBAAmB,SAASC,GAC7B,GAAIC,GAAUD,EAASrE,MAAM,IAC7B,IAAIuE,EAMJ,OAJIA,GADmB,IAAnBD,EAAQnE,QAAgC,KAAfmE,EAAQ,IAAgC,IAAnBA,EAAQnE,OAChD,GAEAmE,EAAQE,MAAM5B,eAU5B7B,KAAK0D,YAAc,SAASC,GAgBxB,GAAkB,OAAdA,GAA2C,mBAAdA,GAC7B,MAAO,EAGX,IAAIC,GAAUD,EAAY,EAC1B,IAAIE,GAAU,GACVC,EAAOC,EAAKC,EAAU,CAE1BF,GAAQC,EAAM,EACdC,EAAUJ,EAAOxE,MACjB,KAAK,GAAI6E,GAAI,EAAOD,EAAJC,EAAaA,IAAK,CAC9B,GAAIC,GAAKN,EAAOO,WAAWF,EAC3B,IAAIG,GAAM,IAEV,IAAS,IAALF,EACAH,QACG,IAAIG,EAAK,KAAY,KAALA,EACnBE,EAAMC,OAAOC,aACRJ,GAAM,EAAK,IAAW,GAALA,EAAW,SAE9B,IAAS,MAALA,GAAc,EACrBE,EAAMC,OAAOC,aACRJ,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAW,GAALA,EAAW,SAEvD,CACH,GAAS,MAALA,GAAc,EACd,KAAM,IAAIK,YAAW,gCAAkCN,EAE3D,IAAIO,GAAKZ,EAAOO,aAAaF,EAC7B,IAAS,MAALO,GAAc,EACd,KAAM,IAAID,YAAW,gCAAkCN,EAAI,GAE/DC,KAAY,KAALA,IAAe,KAAY,KAALM,GAAc,MAC3CJ,EAAMC,OAAOC,aACRJ,GAAM,GAAM,IAAOA,GAAM,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAW,GAALA,EAAW,KAG3E,OAARE,IACIL,EAAMD,IACND,GAAWD,EAAO5B,MAAM8B,EAAOC,IAEnCF,GAAWO,EACXN,EAAQC,EAAME,EAAI,GAQ1B,MAJIF,GAAMD,IACND,GAAWD,EAAO5B,MAAM8B,EAAOE,IAG5BH,GAQX7D,KAAKyE,cAAgB,SAASC,GAgB1B,GAAIC,GAAM,mEACV,IAAIC,GAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAMjG,EAAI,EACtCkG,EAAK,EACLhB,EAAM,GACNiB,IAEJ,KAAKX,EACD,MAAOA,EAGXA,GAAO1E,KAAK0D,YAAYgB,EAAO,GAE/B,GACIE,GAAKF,EAAKP,WAAWjF,KACrB2F,EAAKH,EAAKP,WAAWjF,KACrB4F,EAAKJ,EAAKP,WAAWjF,KAErBiG,EAAOP,GAAM,GAAKC,GAAM,EAAIC,EAE5BC,EAAKI,GAAQ,GAAK,GAClBH,EAAKG,GAAQ,GAAK,GAClBF,EAAKE,GAAQ,EAAI,GACjBD,EAAY,GAAPC,EAGLE,EAAQD,KAAQT,EAAIrF,OAAOyF,GAAMJ,EAAIrF,OAAO0F,GAAML,EAAIrF,OAAO2F,GAAMN,EAAIrF,OAAO4F,SACzEhG,EAAIwF,EAAKtF,OAIlB,QAFAgF,EAAMiB,EAAQC,KAAK,IAEXZ,EAAKtF,OAAS,GAClB,IAAK,GACDgF,EAAMA,EAAIpC,MAAM,EAAG,IAAM,IACzB,MACJ,KAAK,GACDoC,EAAMA,EAAIpC,MAAM,EAAG,IAAM,IAIjC,MAAOoC,IAQXpE,KAAKuF,oBAAsB,SAASrF,GAEhC,MADAA,GAAIF,KAAKyE,cAAcvE,GAChBA,EAAEsF,QAAQ,MAAO,KAAKA,QAAQ,MAAO,MAQhDxF,KAAKyF,WAAa,SAASC,GACvB,GAAIC,KAMJ,OAJIA,GADAlG,OAAOmG,eACG,GAAIA,gBAEJ,GAAIC,eAAc,sBAWpC7F,KAAK8F,UAAY,SAASpB,MAEtB,GAAIjF,OAAOsG,MAAQtG,OAAOsG,KAAKC,MAC3B,MAAOvG,QAAOsG,KAAKC,MAAMtB,KAO7B,IAAOuB,cAAe,0GAItB,IAAIC,MAAO7B,OAAOK,KAoBlB,OAnBAuB,cAAaE,UAAY,EACtBF,aAAa/C,KAAKgD,QACjBA,KAAOA,KAAKV,QAAQS,aAAc,SAASG,GACxC,MAAO,OAAS,OAASA,EAAEjC,WAAW,GAAGkC,SAAS,KAAKrE,MAAM,OAgB7DsE,KAAK,IAAIJ,KAAK,MAQzBlG,KAAKsB,cAAgB,SAASiF,GAE1B,GAAI9G,OAAOsG,MAAQtG,OAAOsG,KAAKS,UAC3B,MAAO/G,QAAOsG,KAAKS,UAAUD,EAEjC,cAAe,IACX,IAAK,SACD,MAAO,IAAMA,EAAIf,QAAQ,WAAY,QAAU,GACnD,KAAK,QACD,MAAO,IAAMe,EAAIE,IAAI1G,KAAKuB,eAAegE,KAAK,KAAO,GACzD,KAAK,SACD,GAAIiB,YAAezE,OAAO,CACtB,GAAI4E,KACJ,IAAIC,GAAMJ,EAAInH,MACd,KAAK,GAAIF,GAAI,EAAOyH,EAAJzH,EAASA,IACrBwH,EAAOE,KAAK7G,KAAKuB,cAAciF,EAAIrH,IAEvC,OAAO,IAAMwH,EAAOpB,KAAK,KAAO,IAC7B,GAAY,OAARiB,EACP,MAAO,MAEP,IAAI3C,KACJ,KAAK,GAAIzB,KAAYoE,GACbA,EAAInE,eAAeD,IACnByB,EAAOgD,KAAK7G,KAAKuB,cAAca,GAAY,IAAMpC,KAAKuB,cAAciF,EAAIpE,IAGhF,OAAO,IAAMyB,EAAO0B,KAAK,KAAO,GAGxC,KAAK,SACD,MAAOiB,EACX,MAAK,EACD,MAAOA,EACX,KAAK,UACD,MAAOA,KASnBvG,KAAK6G,KAAO,SAASX,GACjB,MAAgB,QAATA,EAAgB,GAAKA,EAAKV,QAAQ,aAAc,KAQ3DxF,KAAK8G,SAAW,SAASC,GAQrB,GAAIC,GAAmB,WACnB,GAAIC,GAAKlH,KAAKE,iBACd,IAAIiH,GAAYC,EAAgBC,CAEhC,IAAIC,GAAyC,WAAtBC,MAAMC,IAAIC,SAAwBF,MAAMC,IAAIE,SAAW,GAAsB,YAAjBH,MAAMC,IAAIG,IAA4C,MAAxBJ,MAAMC,IAAII,WAA6C,WAAtBL,MAAMC,IAAIC,SAAyC,QAAjBF,MAAMC,IAAIG,IAAwC,MAAxBJ,MAAMC,IAAII,SAIpNV,IAAY,GAANA,GAAWF,EAAGK,YAAcL,EAAGa,SAASpI,QAAQ,SAAW,EAGjEuH,EAAGK,WAAa,EACTC,EAIPN,EAAGK,WAAa,GAEhBF,EAAa,GACbC,EAAiB,GAAKD,EAEtBE,EAAaS,SAASC,UAAUf,EAAGK,YAC/BA,EAAaD,IACbJ,EAAGK,WAAaD,IAY5B,IAAIY,GAAa,WACb,GAAKhB,EAAGiB,QAaJjI,KAAKkI,MAAQlB,EAAGiB,YAbH,CAEb,GAAIE,GAAOnI,KAAK0F,YAChByC,GAAKC,KAAK,MAAOpI,KAAKqI,aAAa,GACnCF,EAAKG,iBAAiB,oBAAqB,KAC3CH,EAAKI,mBAAqB,WACtB,GAAwB,IAApBJ,EAAKK,YAAoC,MAAhBL,EAAKM,OAAgB,CAC9C,GAAI1F,GAAM/C,KAAK+F,UAAUoC,EAAKO,aAC9B1I,MAAKkI,MAAQnF,EAAIkF,UAGzBE,EAAKQ,QAOb,IAAIC,GAAa,SAASC,EAAIC,EAAMjH,GAEhC,GAAIzD,GAAM,GACN2K,GAAe,CACnB,KAAK/B,EAAGgC,SAGJ,GAFAD,EAAeF,EAAGI,WAAaJ,EAAGI,UAAU,gBAC5CF,EAAeA,GAAiBF,EAAGK,UAAYL,EAAGK,SAASH,aACzC,CACd,GAAItF,GAAMzD,KAAKsD,iBAAiBwF,EAAKK,KACrC/K,GAAMqF,EAAMqF,EAAKM,GAAK,IAAM3F,EAAMqF,EAAKM,OAEvChL,GADuB,kBAATyD,GACRA,EAAKgH,EAAIC,GAETA,EAAKK,IAGnB,OAAO/K,GASX,IAJI4I,EAAGqC,YACH5I,OAAOQ,MAAQ+F,EAAGqC,YAGjBrC,EAAGsC,OACJ,KAAM,wCAGV,KAAKtC,EAAGuC,cACJ,KAAM,+CAGV9I,QAAOmC,MAAM,uBAEbnC,OAAOmC,MAAM,gBAAiB2E,MAAMC,KAEpC/G,OAAOmC,MAAM,cAAe4G,UAAUC,UAEtC,IAAIC,KAGJ,IAAIC,GAAiB3C,EAAG4C,MAAQ5C,EAAG4C,KAAKC,KACxC,IAAIC,GAAwB9C,EAAG4C,MAAQ5C,EAAG4C,KAAKG,YAG/C/C,GAAG4C,KAAKC,MAAQ,aAChB7C,EAAG4C,KAAKG,aAAe,aAEvB/J,KAAKqI,YAAcrB,EAAGqB,YACtBrI,KAAKkI,MAAQ,GACblI,KAAKgK,YAAqC,kBAAhBhD,GAAG4C,KAAKK,IAAqBjD,EAAG4C,KAAKK,IAAM,GACrEhK,KAAKqJ,OAAStC,EAAGsC,MAGjB,IAAIY,GAAM,EACV,IAAIC,IACAC,gBAAgB,EAChBC,eAAgB,EAChBC,UAAW,GACXC,YAAa,GAGjBtD,KACAxG,OAAOmC,MAAM,6BACbnC,OAAOmC,MAAM,kBAAmBoE,EAAGK,YAGnCS,SAAS0C,OAAOd,EAAQ1C,GACpBlE,IAAKR,eACLmI,kBACIvC,MAAO,MAIfzH,OAAOmC,MAAM,WAAY8G,EAGzB,IAAI3C,GAAW,GAAIe,UAAS4C,SAAShB,EAErCjJ,QAAOmC,MAAM,iCAGbmE,EAAS4D,KAAK,OAAQ,SAAS9B,EAAI+B,GAC/BnK,OAAOmC,MAAM,wBAKToE,EAAG6D,iBACH7C,IAEJA,MAGJvH,OAAOmC,MAAM,mBAKbmE,EAAS4D,KAAK,aAAc,SAAS9B,EAAIiC,GACrCrK,OAAOmC,MAAM,6BACb,IAAImI,GAAalC,EAAGI,WAAaJ,EAAGI,UAAU,aAC9C8B,GAAaA,GAAelC,EAAGK,UAAYL,EAAGK,SAAS6B,WACvDtK,OAAOmC,MAAM,eAAgBmI,GAC7BtK,OAAOmC,MAAM,UAAWkI,GACpBC,GACAC,WAAW,WACPnC,EAAG9E,QACHtD,OAAOmC,MAAM,sBACd,GAQPiG,EAAGoC,YAGPxK,OAAOmC,MAAM,yBAObmE,EAAS4D,KAAK,eAAgB,SAAS9B,EAAIC,GACvCrI,OAAOmC,MAAM,gCAEbkG,EAAKoC,MAAQpC,EAAKoC,OAAS,EAC3BhB,EAAM,GAEHlD,EAAG6D,iBACF7C,GAGJ,IAAImD,GAAe,SAAStC,EAAIC,EAAMjH,GAClCsI,EAAaG,WAAY,GAAI9L,OAAOE,SACpC,IAAI0M,EAEAA,GADApE,EAAGgC,UAECd,MAASlI,KAAKkI,QAId9J,IAAOwK,EAAWC,EAAIC,EAAMjH,GAC5BqG,MAASlI,KAAKkI,OAItBzH,OAAOmC,MAAM,sCAAuCwI,EAEpD,IAAIC,GAASrE,EAAGqE,MAChB,IAAeC,SAAXD,GAA0C,gBAAXA,GAC/B,IAAK,GAAIE,KAASF,GACVA,EAAOhJ,eAAekJ,KACO,kBAAlBF,GAAOE,GACdH,EAAqB,KAAOG,GAASF,EAAOE,GAAO1C,EAAIC,GACvB,gBAAlBuC,GAAOE,KACrBH,EAAqB,KAAOG,GAASF,EAAOE,IAO5D1C,GAAG2C,WACC1I,IAAOR,eACPmJ,WAAa,EACbpE,WAAcqE,IAA4B1E,EAAG2E,cAAgBL,OAC7Db,iBAAoBW,IAK5B,IAAIM,GAA0B,WAC1B,GAAIE,GAAKpC,UAAUC,UAAU3H,aAC7B,QAAI8J,EAAGC,MAAM,oBAA4C,cAAtBtE,MAAMC,IAAIC,SAA2BmE,EAAGC,MAAM,gBAA+C,YAA7BtE,MAAMC,IAAIsE,GAAGhK,eACrG,GAEA,EAIf,IAAIuF,GAAawB,EAAGI,WAAaJ,EAAGI,UAAU,aAO9C,IANA5B,EAAaA,GAAewB,EAAGK,UAAYL,EAAGK,SAAS7B,WAEvD5G,OAAOmC,MAAM,qBAAqBmE,EAASgF,SAC3CtL,OAAOmC,MAAM,eAAeyE,GAGF,UAArBN,EAASgF,SAA4C,UAArBhF,EAASgF,UAAwB1E,EAsElE5G,OAAOmC,MAAM,oGAEbuI,EAAatC,EAAIC,EAAM9I,KAAKgK,iBAvE5B,IAAIlB,EAAKkD,KAAO3E,GAAcqE,IAC1BjL,OAAOmC,MAAM,4EAEbuI,EAAatC,EAAIC,EAAM9I,KAAKgK,iBACzB,CAIH,GAAIiC,GAAgBtM,aAAaE,QAAQiJ,EAAKK,KAC9C,IAAI+C,GAAY7E,CAChB,IAAI4E,EAAe,CAGfA,EAAgBjM,KAAK+F,UAAUkG,EAC/B,IAAIE,IAAM,GAAK3N,OAAQE,SACvB,IAAI0N,GAASH,EAAcI,MAAQ,CACnC,IAAIC,GAAO,KAKQA,GAAfH,EAAMC,GAEwB,MAA1BH,EAAcM,SACVzD,EAAKkD,OAASC,EAAcO,OAG5B1D,EAAKyD,QAAUN,EAAcM,QAC7BzD,EAAK2D,OAASR,EAAcS,OAC5BxC,EAAM+B,EAAc/B,IAGpBC,EAAaC,gBAAiB,EAC9BD,EAAaE,eAAiB4B,EAAcS,OAGxCT,EAAcS,OAASR,EAAYpD,EAAKkD,OACxCE,EAAYpD,EAAKkD,KAAOC,EAAcS,SAclD/M,aAAaG,WAAWgJ,EAAKK,MAGrCgB,EAAaG,WAAY,GAAI9L,OAAOE,UAGpCmK,EAAG2C,WACC1I,IAAOR,eAAiB,UAAY4J,EACpCT,WAAa,EACbpE,WAAcA,EACdsF,kBAAqB,SACrBC,SACIC,cAAiB,WAAa7M,KAAKkI,OAEvCuC,yBAUhBhK,OAAOmC,MAAM,2BAIbmE,EAAS4D,KAAK,iBAAkB,SAAS9B,EAAIC,GACzCrI,OAAOqM,MAAM,kCACb3C,EAAaI,aAAc,GAAI/L,OAAOE,SACtC,IAAIqO,GAAW5C,EAAaI,YAAcJ,EAAaG,SACvD,IAAI0C,GAAelE,EAAK2D,QAAU,CAC9BtC,GAAaC,iBACb4C,EAAelE,EAAK2D,OAAStC,EAAaE,gBAE9CvB,EAAKoC,OAAS8B,EAAeD,EAAW,KAAME,QAAQ,IAAM,IAGhExM,OAAOmC,MAAM,6BAIbmE,EAAS4D,KAAK,gBAAiB,SAAS9B,EAAIC,EAAMoE,GAC9CzM,OAAOmC,MAAM,iCACbnC,OAAOmC,MAAM,SAAUkG,GACvBrI,OAAOmC,MAAM,SAAUsK,EACvB,IAAInK,GAAM/C,KAAK+F,UAAUmH,EAAKC,SAC9B1M,QAAOmC,MAAM,QAASG,GAEtBmH,EAAMA,EAAMA,EAAM,IAAMnH,EAAImH,IAAMnH,EAAImH,GACtC,IAAIkD,GAAWF,EAAKV,MAAQU,EAAKR,MACjC,IAAIrF,GAAawB,EAAGI,WAAaJ,EAAGI,UAAU,aAC9C5B,GAAaA,GAAewB,EAAGK,UAAYL,EAAGK,SAAS7B,WACxCA,EAAX+F,IACAvE,EAAG2C,WACC1I,IAAOR,eAAiB,UAAY8K,IAExC3M,OAAOmC,MAAM,qBAAsBN,eAAiB,UAAY8K,IAEpEzN,aAAaC,QAAQkJ,EAAKK,KAAMnJ,KAAKuB,eACjC2I,IAAKA,EACLqC,QAASzD,EAAKyD,QACdC,MAAOU,EAAKV,MACZE,OAAQQ,EAAKR,OACbL,MAAM,GAAK7N,OAAQE,eAI3B+B,OAAOmC,MAAM,2BAEb,IAAIyK,GAAU5K,gBAAgBpD,MAG9B,IAAIiO,GAAqB,SAASxE,GAC9B,MAAIuE,KAAY,GACZrC,WAAW,WACPhL,KAAK2C,iBACLmG,EAAKL,OAASX,SAASyF,OACvBxG,EAASyG,OACTzG,EAAShD,SACV,IACI,IAEPsJ,EAAU5K,gBAAgBpD,QACnB,GAwPf,OAlPA0H,GAAS4D,KAAK,QAAS,SAAUhB,GAC7B,MAAO,UAASd,EAAI4E,GAChBhN,OAAOiN,MAAM,yBACbjN,OAAOiN,MAAM,QAASD,EACtB,IAAIE,GAAS,EACb,IAAI7E,GAAO2E,EAAI3E,IACf,IAAIA,EAAM,CACN,OAAQ2E,EAAI7L,MACR,IAAKkG,UAAS8F,OACVD,EAAS,oEACT,MACJ,KAAK7F,UAAS+F,gBACV,GAAIlC,GAAgB9C,EAAGI,WAAaJ,EAAGI,UAAU,gBACjD0C,GAAgBA,GAAkB9C,EAAGK,UAAYL,EAAGK,SAASyC,cAC7DgC,EAAS,mDAAahC,EAAgB,sFACtC,MACJ,KAAK7D,UAASgG,qBACVH,EAAS,gFACT,MACJ,KAAK7F,UAASiG,WACV,GAAqB,KAAjBN,EAAIN,SAAiB,CAGrB,GADAQ,EAASF,EAAIO,SAAW,8CACnBV,EAAmBxE,GACpB,MAEJ,OAEJ,GAAImF,GAAWjO,KAAK+F,UAAU0H,EAAIN,SAClC,IAAIe,GAAYD,EAASP,KACzB,QAAQD,EAAIhF,QACR,IAAK,KACDkF,EAAS,wDACT,MACJ,KAAK,KACDA,EAAS,oHACT,MACJ,KAAK,KACDA,EAAS,wGACT,MACJ,KAAK,KACDA,EAAS,gFACT,MACJ,KAAK,KAED,GADAA,EAAS,oGACJL,EAAmBxE,GACpB,MAEJ,MACJ,KAAK,KACD6E,EAAS,sCACT,KACIM,EAAWjO,KAAK+F,UAAUkI,EAASP,OACnCQ,EAAYD,EAASP,OAAS,cAChC,MAAOS,GACLD,EAAYD,EAASP,OAAS,cAElC,KACJ,KAAK,KACDC,EAAS,kDACT,MACJ,KAAK,KACDA,EAAS,oHACT,MACJ,SAEI,GADAA,EAAS,kCACJL,EAAmBxE,GACpB,OAIZ6E,EAASA,EAAS,IAAMF,EAAIhF,OAAS,SAAMyF,EAAY,GACvD,MACJ,KAAKpG,UAASsG,eACVT,EAAS,kGACT,MACJ,KAAK7F,UAASuG,cACVV,EAAS,oEACT,MACJ,KAAK7F,UAASwG,SACVX,EAAS,oEACT,MACJ,KAAK7F,UAASyG,WACVZ,EAAS,mGACT5G,EAASyH,SACT,MACJ,SAEI,GADAb,EAASF,EAAIO,QAAUP,EAAIgB,SACtBnB,EAAmBxE,GACpB,OAIRa,GACAA,EAAed,EAAI4E,EAAKE,GAGhC9E,EAAGoC,YAERtB,IAEHlJ,OAAOmC,MAAM,oBAMbmE,EAAS4D,KAAK,eAAgB,SAAUb,GACpC,MAAO,UAASjB,EAAIC,EAAMoE,GACtBzM,OAAOmC,MAAM,gCACbnC,OAAOmC,MAAM,SAAUkG,GACvBrI,OAAOmC,MAAM,SAAUsK,EACvB,IAAIwB,GAAY,SAAS7F,EAAIC,EAAMoE,GAC/B,GAAIlG,EAAG2H,cAAe,CAGlB,GAAIC,GAAiB5O,KAAK0F,YAC1BkJ,GAAexG,KAAK,OAAQpB,EAAG2H,eAAe,GAC9CC,EAAetG,iBAAiB,eAAgB,qCAChDsG,EAAerG,mBAAqB,WAChC,GAAkC,IAA9BqG,EAAepG,WACf,GAA8B,MAA1BoG,EAAenG,OAAgB,CAC/B,GAAIoG,EACJ,KACIA,EAAgB7O,KAAK+F,UAAU6I,EAAelG,cAChD,MAAOyF,GACL,KAAM,sBAEV,GAAIW,KACJhH,UAAS0C,OAAOsE,EAAe9O,KAAK+F,UAAUmH,GAAO2B,GACjD/E,GACAA,EAAsBjB,EAAIC,EAAM9I,KAAKuB,cAAcuN,QAGvD/H,GAASgI,QAAQ,SACbtG,OAAQmG,EAAenG,OACvB0E,SAAUyB,EAAelG,aACzBI,KAAMA,EACNlH,KAAMkG,SAASiG,cAK/Ba,EAAejG,KAAK,OAAS3I,KAAK+F,UAAUmH,GAAM9O,IAAM,WAAa4I,EAAGsC,YACjEQ,IACPA,EAAsBjB,EAAIC,EAAMoE,GAIxC,IAAInK,GAAM/C,KAAK+F,UAAUmH,EAAKC,SAS9B,IARAjD,EAAMA,EAAMA,EAAMnH,EAAImH,IAOtBzJ,OAAOmC,MAAM,QAASsH,GAClBA,EAAK,CACL,GAAI9L,GAAM,EACVqC,QAAOmC,MAAM,aAAcoE,EAAGgC,UACzBhC,EAAGgC,WACJ5K,EAAMwK,EAAWC,EAAIC,EAAM9I,KAAKgK,aAChC5L,EAAMA,EAAM,QAAU4B,KAAKwF,oBAAoBpH,GAAO,GAG1D,IAAI4Q,GAAQ,UAAYhP,KAAKwF,oBAAoBsD,EAAKK,KAEtD1I,QAAOmC,MAAM,cAAeoE,EAAGqE,OAC/B,IAAIA,GAASrE,EAAGqE,OACZ4D,EAAQ,GACRC,EAAa,EACjB,IAAe5D,SAAXD,GAA0C,gBAAXA,GAC/B,IAAK,GAAIE,KAASF,GACVA,EAAOhJ,eAAekJ,KACO,kBAAlBF,GAAOE,GACd0D,EAAQjP,KAAKwF,oBAAoB6F,EAAOE,GAAO1C,EAAIC,IACnB,gBAAlBuC,GAAOE,KACrB0D,EAAQjP,KAAKwF,oBAAoB6F,EAAOE,KAE5C2D,GAAc,MAAQ3D,EAAQ,IAAM0D,EAKhD,IAAInM,GAAMR,eAAiB,WAAawG,EAAKkD,KAAO5N,EAAM4Q,EAAQE,CAElE,IAAIhI,GAAKlH,KAAKE,iBACd,IAAIiI,EACAjB,IAAY,GAANA,GACNiB,EAAO,GAAIZ,OAAM1B,eACjB0B,MAAMC,IAAI2H,QAAUnI,EAAGoI,eAEvBjH,EAAOnI,KAAK0F,aAEhByC,EAAKC,KAAK,OAAQtF,GAAK,GACvBqF,EAAKG,iBAAiB,eAAgB,4BACtCH,EAAKG,iBAAiB,gBAAiB,WAAatI,KAAKkI,MACzD,IAAIK,GAAqB,WAErB,GADA9H,OAAOmC,MAAM,oBAAqBuF,EAAKK,YACf,IAApBL,EAAKK,WAAkB,CACvB7I,aAAaG,WAAWgJ,EAAKK,KAC7B,IAAI+D,EACgB,OAAhB/E,EAAKM,QACLyE,EAAO/E,EAAKO,aACZjI,OAAOmC,MAAM,sBAAuBsK,GACpCwB,EAAU7F,EAAIC,EAAMoE,KAEpBA,GACIzE,OAAQN,EAAKM,OACb0E,SAAUhF,EAAKO,aACfI,KAAMA,EACNlH,KAAM,MAEVnB,OAAOmC,MAAM,oBAAqBsK,GAClCnG,EAASgI,QAAQ,QAAS7B,KAIlChG,IAAY,GAANA,EACNiB,EAAKwC,KAAK,mBAAoBpC,GAE9BJ,EAAKI,mBAAqBA,EAE9BJ,EAAKQ,KAAKuB,GACVzJ,OAAOmC,MAAM,WAAYE,OAEzB4L,GAAU7F,EAAIC,EAAMoE,EAAKC,YAIlCrD,IAEHrJ,OAAOmC,MAAM,2BAGbmE,EAAS6C,OAETnJ,OAAOmC,MAAM,0BAEbnC,OAAOmC,MAAM,qBAENmE,GAQX9G,KAAKoP,OAAS,SAASjR,GACnB,IAAKA,EACD,OAAO,CAEXA,GAAMkR,UAAUlR,EAChB,IAAIkL,GAASrJ,KAAKqJ,MAIlB,OAHwC,MAApCA,EAAOrH,MAAMqH,EAAOjK,OAAS,KAC7BiK,GAAkB,KAEfA,EAASlL,GASpB6B,KAAKsP,WAAa,SAASvI,EAAI5I,GAC3B,GAAIoR,GAAOxI,EAAGwI,MAAQ,GAClBC,EAAIzI,EAAGyI,GAAK,GACZC,EAAI1I,EAAG0I,GAAK,GACZC,EAAI3I,EAAG2I,GAAK,GACZC,EAAS5I,EAAG4I,QAAU,EAC1B,KAAKJ,EACD,OAAO,CAEX,KAAKC,IAAMC,EACP,OAAO,CAGX,IAAIG,GAAW,cAAgBL,CAQ/B,OAPAK,IAAYJ,EAAI,MAAQA,EAAI,GAC5BI,GAAYH,EAAI,MAAQA,EAAI,GAC5BG,GAAYF,EAAI,MAAQA,EAAI,GAC5BE,GAAYD,EAAS,WAAaA,EAAS,GACvCxR,IACAyR,EAAW5P,KAAKoP,OAAOjR,GAAO,IAAMyR,GAEjCA,GASX5P,KAAK6P,WAAa,SAAS9I,EAAI5I,GAC3B,GAAI2R,GAAc/I,EAAG,gBAAkB,GACnCgJ,EAAYhJ,EAAGgJ,WAAa,GAC5BC,EAAQjJ,EAAGiJ,OAAS,GACpBC,EAAUlJ,EAAGkJ,SAAW,GACxBC,EAAOnJ,EAAGmJ,MAAQ,GAClBC,EAAUpJ,EAAGoJ,SAAW,GACxBC,EAASrJ,EAAGqJ,QAAU,GACtBT,EAAS5I,EAAG4I,QAAU,GACtBU,EAAOtJ,EAAGsJ,MAAQ,EAGtB,IAAIT,GAAW,YAef,OAbAA,IAAYE,EAAc,eAAiB,GAC3CF,GAAYG,EAAY,cAAgBA,EAAY,GACpDH,GAAYI,EAAQ,SAAW,GAC/BJ,GAAYK,EAAU,YAAcA,EAAU,GAC9CL,GAAYO,EAAU,YAAcA,EAAU,GAC9CP,GAAYM,EAAO,SAAWA,EAAO,GACrCN,GAAYQ,EAAS,WAAaA,EAAS,GAC3CR,GAAYD,EAAS,WAAaA,EAAS,GAC3CC,GAAYS,EAAO,SAAWA,EAAO,GAEjClS,IACAyR,EAAW5P,KAAKoP,OAAOjR,GAAO,IAAMyR,GAEjCA,GASX5P,KAAKsQ,UAAY,SAASvJ,EAAI5I,GAC1B,GAAIoR,GAAOxI,EAAGwI,IACd,KAAKA,EACD,OAAO,CAGX,IAAIK,GAAW,aAAeL,CAE9B,IAAa,IAATA,EAAY,CACZ,GAAIgB,GAAQxJ,EAAGwJ,OAAS,EACxB,KAAKA,EACD,OAAO,CAEXX,IAAYW,EAAQ,UAAYvQ,KAAKuF,oBAAoBgL,GAAS,OAC/D,CAAA,GAAa,IAAThB,EAcP,OAAO,CAbP,IAAIrJ,GAAOa,EAAGb,KAAOa,EAAGb,KAAO,GAC3BsK,EAAOzJ,EAAGyJ,KAAOzJ,EAAGyJ,KAAO,GAC3BC,EAAW1J,EAAG0J,SAAW1J,EAAG0J,SAAW,GACvCC,EAAO3J,EAAG2J,KAAO3J,EAAG2J,KAAO,EAC/B,KAAKxK,EACD,OAAO,CAEX0J,IAAY1J,EAAO,SAAWlG,KAAKuF,oBAAoBW,GAAQ,GAC/D0J,GAAYY,EAAO,SAAWxQ,KAAKuF,oBAAoBiL,GAAQ,GAC/DZ,GAAYa,EAAW,aAAeA,EAAW,GACjDb,GAAYc,EAAO,SAAW1Q,KAAKuF,oBAAoBmL,GAAQ,GAMnE,GAAIC,GAAW5J,EAAG4J,UAAY,GAC1BV,EAAUlJ,EAAGkJ,SAAW,GACxBW,EAAK7J,EAAG6J,IAAM,GACdC,EAAK9J,EAAG8J,IAAM,EAUlB,OARAjB,IAAYe,EAAW,aAAeA,EAAW,GACjDf,GAAYK,EAAU,YAAcA,EAAU,GAC9CL,GAAYgB,EAAK,OAASA,EAAK,GAC/BhB,GAAYiB,EAAK,OAASA,EAAK,GAE3B1S,IACAyR,EAAW5P,KAAKoP,OAAOjR,GAAO,IAAMyR,GAEjCA,GAQX5P,KAAK8Q,UAAY,SAAS3S,GACtB,IAAKA,EACD,OAAO,CAEX,IAAI0E,GAAM7C,KAAKoP,OAAOjR,GAAO,YAC7B,IAAI4S,GAAM/Q,KAAKyF,YACf,IAAIwH,EACJ,IAAIlN,GAAOC,IAQX,OAPA+Q,GAAI5I,KAAK,MAAOtF,GAAK,GACrBkO,EAAIzI,mBAAqB,WACE,IAAnByI,EAAIxI,YAAmC,MAAfwI,EAAIvI,SAC5ByE,EAAOlN,EAAK+F,UAAUiL,EAAItI,gBAGlCsI,EAAIrI,OACGuE,GAQXjN,KAAKgR,KAAO,SAAS7S,GACjB,IAAKA,EACD,OAAO,CAEX,IAAI0E,GAAM7C,KAAKoP,OAAOjR,GAAO,OAC7B,IAAI4S,GAAM/Q,KAAKyF,YACf,IAAIwH,EACJ,IAAIlN,GAAOC,IAQX,OAPA+Q,GAAI5I,KAAK,MAAOtF,GAAK,GACrBkO,EAAIzI,mBAAqB,WACE,IAAnByI,EAAIxI,YAAmC,MAAfwI,EAAIvI,SAC5ByE,EAAOlN,EAAK+F,UAAUiL,EAAItI,gBAGlCsI,EAAIrI,OACGuE,GAUXjN,KAAKiR,IAAM,SAAS/P,EAAM/C,GACtB,MAAKA,IAAQ+C,EAGA,SAATA,EACOlB,KAAKgR,KAAK7S,GACD,cAAT+C,EACAlB,KAAK8Q,UAAU3S,IAEnB,GAPI,GAkBf6B,KAAKkR,SAAW,SAASC,EAAKhT,GAC1B,GAAIiT,GAAkD,mBAAxCC,OAAOtP,UAAUsE,SAASpE,KAAKkP,EAC7C,IAAI1H,GAAQ6H,EAAO1B,EAAW,EAC9B,IAAIwB,EAAS,CACT,IAAK,GAAIlS,GAAI,EAAGyH,EAAMwK,EAAI/R,OAAYuH,EAAJzH,EAASA,IAAK,CAE5C,GADAuK,EAAS0H,EAAIjS,IACRuK,EAAO8H,IACR,OAAO,CAEX,QAAQ9H,EAAO8H,KACX,IAAK,YACD3B,GAAY5P,KAAKsQ,UAAU7G,GAAU,GACrC,MACJ,KAAK,aACDmG,GAAY5P,KAAKsP,WAAW7F,GAAU,GACtC,MACJ,KAAK,aACDmG,GAAY5P,KAAK6P,WAAWpG,GAAU,GACtC,MACJ,SACI6H,GAAQ,EAGhB,GAAIA,EACA,OAAO,EAGf,GAAInT,EAAK,CACLyR,EAAW5P,KAAKoP,OAAOjR,GAAO,IAAMyR,CACpC,IAAIxQ,GAASwQ,EAASxQ,MACa,OAA/BwQ,EAAS5N,MAAM5C,EAAS,KACxBwQ,EAAWA,EAAS5N,MAAM,EAAG5C,EAAS,IAG9C,MAAOwQ,GAEX,OAAO,GAIf,GAAI4B,OAAQ,GAAI1R,WAEhB7B,QAAOuT,MAAQA,MAEfvT,OAAO6B,WAAaA,YAEhBL"} \ No newline at end of file diff --git a/package.json b/package.json index 3f649d13..6123803d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "qiniu-js-sdk", "jsName": "qiniu", - "version": "1.0.13-beta", + "version": "1.0.14-beta", "private": false, "scripts": { "start": "node demo/server.js" diff --git a/src/qiniu.js b/src/qiniu.js index 033fd695..fda85e94 100644 --- a/src/qiniu.js +++ b/src/qiniu.js @@ -48,7 +48,8 @@ function readCookie(key) { return null; } - +// if current browser is not support localStorage +// use cookie to make a polyfill if ( !window.localStorage ) { window.localStorage = { setItem: function (key, value) { @@ -67,13 +68,6 @@ function QiniuJsSDK() { var that = this; - var qiniuUploadUrl; - if (window.location.protocol === 'https:') { - qiniuUploadUrl = 'https://up.qbox.me'; - } else { - qiniuUploadUrl = 'http://upload.qiniu.com'; - } - /** * detect IE version * if current browser is not IE @@ -142,6 +136,46 @@ function QiniuJsSDK() { } + var qiniuUploadUrl; + if (window.location.protocol === 'https:') { + qiniuUploadUrl = 'https://up.qbox.me'; + } else { + qiniuUploadUrl = 'http://upload.qiniu.com'; + } + + /** + * qiniu upload urls + * 'qiniuUploadUrls' is used to change target when current url is not avaliable + * @type {Array} + */ + var qiniuUploadUrls = [ + "http://upload.qiniu.com", + "http://up.qiniu.com", + ]; + + var changeUrlTimes = 0; + + /** + * reset upload url + * if current page protocal is https + * it will always return 'https://up.qbox.me' + * else + * it will set 'qiniuUploadUrl' value with 'qiniuUploadUrls' looply + */ + this.resetUploadUrl = function(){ + if (window.location.protocol === 'https:') { + qiniuUploadUrl = 'https://up.qbox.me'; + } else { + var i = changeUrlTimes % qiniuUploadUrls.length; + qiniuUploadUrl = qiniuUploadUrls[i]; + changeUrlTimes++; + } + logger.debug('resetUploadUrl: '+qiniuUploadUrl); + }; + + this.resetUploadUrl(); + + /** * is image * @param {String} url of a file @@ -825,6 +859,24 @@ function QiniuJsSDK() { logger.debug("bind ChunkUploaded event"); + var retries = qiniuUploadUrls.length; + + // if error is unkown switch upload url and retry + var unknow_error_retry = function(file){ + if (retries-- > 0) { + setTimeout(function(){ + that.resetUploadUrl(); + file.status = plupload.QUEUED; + uploader.stop(); + uploader.start(); + }, 0); + return true; + }else{ + retries = qiniuUploadUrls.length; + return false; + } + }; + // bind 'Error' event // check the err.code and return the errTip uploader.bind('Error', (function(_Error_Handler) { @@ -850,6 +902,9 @@ function QiniuJsSDK() { if (err.response === '') { // Fix parseJSON error ,when http error is like net::ERR_ADDRESS_UNREACHABLE errTip = err.message || '未知网络错误。'; + if (!unknow_error_retry(file)) { + return; + } break; } var errorObj = that.parseJSON(err.response); @@ -869,6 +924,9 @@ function QiniuJsSDK() { break; case 599: errTip = "网络连接异常。请重试或提交反馈。"; + if (!unknow_error_retry(file)) { + return; + } break; case 614: errTip = "文件已存在。"; @@ -887,6 +945,9 @@ function QiniuJsSDK() { break; default: errTip = "未知错误。"; + if (!unknow_error_retry(file)) { + return; + } break; } errTip = errTip + '(' + err.status + ':' + errorText + ')'; @@ -906,6 +967,9 @@ function QiniuJsSDK() { break; default: errTip = err.message + err.details; + if (!unknow_error_retry(file)) { + return; + } break; } if (_Error_Handler) {