Skip to content

Commit

Permalink
优化 Body 判断
Browse files Browse the repository at this point in the history
  • Loading branch information
carsonxu committed Nov 21, 2018
1 parent 7a7e240 commit f45024b
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 115 deletions.
74 changes: 18 additions & 56 deletions dist/cos-js-sdk-v5.js
Original file line number Diff line number Diff line change
Expand Up @@ -228,20 +228,24 @@ var getFileMd5 = function (blob, callback) {
callback(null, hash);
});
};

function clone(obj) {
return map(obj, function (v) {
return typeof v === 'object' ? clone(v) : v;
});
}

function extend(target, source) {
each(source, function (val, key) {
target[key] = source[key];
});
return target;
}

function isArray(arr) {
return arr instanceof Array;
}

function isInArray(arr, item) {
var flag = false;
for (var i = 0; i < arr.length; i++) {
Expand All @@ -252,13 +256,15 @@ function isInArray(arr, item) {
}
return flag;
}

function each(obj, fn) {
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
fn(obj[i], i);
}
}
}

function map(obj, fn) {
var o = isArray(obj) ? [] : {};
for (var i in obj) {
Expand All @@ -268,6 +274,7 @@ function map(obj, fn) {
}
return o;
}

function filter(obj, fn) {
var iaArr = isArray(obj);
var o = iaArr ? [] : {};
Expand All @@ -284,6 +291,7 @@ function filter(obj, fn) {
}
return o;
}

var binaryBase64 = function (str) {
var i,
len,
Expand Down Expand Up @@ -460,6 +468,7 @@ var throttleOnProgress = function (total, onProgress) {
var time0 = Date.now();
var time1;
var timer;

function update() {
timer = 0;
if (onProgress && typeof onProgress === 'function') {
Expand All @@ -478,6 +487,7 @@ var throttleOnProgress = function (total, onProgress) {
} catch (e) {}
}
}

return function (info, immediately) {
if (info) {
size1 = info.loaded;
Expand All @@ -495,62 +505,14 @@ var throttleOnProgress = function (total, onProgress) {

var getFileSize = function (api, params, callback) {
var size;
if (util.isBrowser) {
if (typeof params.Body === 'string') {
params.Body = new global.Blob([params.Body]);
}
if (params.Body instanceof global.File || params.Body instanceof global.Blob) {
size = params.Body.size;
} else {
callback({ error: 'params body format error, Only allow File|Blob|String.' });
return;
}
if (typeof params.Body === 'string') {
params.Body = new Blob([params.Body]);
}
if (params.Body instanceof window.File || params.Body instanceof window.Blob) {
size = params.Body.size;
} else {
if (api === 'sliceUploadFile') {
if (params.FilePath) {
fs.stat(params.FilePath, function (err, fileStats) {
if (err) {
if (params.ContentLength !== undefined) {
size = params.ContentLength;
} else {
callback(err);
return;
}
} else {
params.FileStat = fileStats;
params.FileStat.FilePath = params.FilePath;
size = fileStats.size;
}
params.ContentLength = size = size || 0;
callback(null, size);
});
return;
} else {
callback({ error: 'missing param FilePath' });
return;
}
} else {
if (params.Body !== undefined) {
if (typeof params.Body === 'string') {
params.Body = global.Buffer.from(params.Body);
}
if (params.Body instanceof global.Buffer) {
size = params.Body.length;
} else if (typeof params.Body.pipe === 'function') {
if (params.ContentLength === undefined) {
size = undefined;
} else {
size = params.ContentLength;
}
} else {
callback({ error: 'params Body format error, Only allow Buffer|Stream|String.' });
return;
}
} else {
callback({ error: 'missing param Body' });
return;
}
}
callback({ error: 'params body format error, Only allow File|Blob|String.' });
return;
}
params.ContentLength = size;
callback(null, size);
Expand Down Expand Up @@ -1975,7 +1937,7 @@ base.init(COS, task);
advance.init(COS, task);

COS.getAuthorization = util.getAuth;
COS.version = '0.4.24';
COS.version = '0.4.25';

module.exports = COS;

Expand Down
2 changes: 1 addition & 1 deletion dist/cos-js-sdk-v5.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cos-js-sdk-v5",
"version": "0.4.24",
"version": "0.4.25",
"description": "cos js sdk v5",
"main": "index.js",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion src/cos.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ base.init(COS, task);
advance.init(COS, task);

COS.getAuthorization = util.getAuth;
COS.version = '0.4.24';
COS.version = '0.4.25';

module.exports = COS;
74 changes: 18 additions & 56 deletions src/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ var getAuth = function (opt) {
key = key.toLowerCase();
key = camSafeUrlEncode(key);
val = camSafeUrlEncode(val) || '';
list.push(key + '=' + val)
list.push(key + '=' + val)
}
return list.join('&');
};
Expand Down Expand Up @@ -163,20 +163,24 @@ var getFileMd5 = function (blob, callback) {
callback(null, hash);
});
};

function clone(obj) {
return map(obj, function (v) {
return typeof v === 'object' ? clone(v) : v;
});
}

function extend(target, source) {
each(source, function (val, key) {
target[key] = source[key];
});
return target;
}

function isArray(arr) {
return arr instanceof Array;
}

function isInArray(arr, item) {
var flag = false;
for (var i = 0; i < arr.length; i++) {
Expand All @@ -187,13 +191,15 @@ function isInArray(arr, item) {
}
return flag;
}

function each(obj, fn) {
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
fn(obj[i], i);
}
}
}

function map(obj, fn) {
var o = isArray(obj) ? [] : {};
for (var i in obj) {
Expand All @@ -203,6 +209,7 @@ function map(obj, fn) {
}
return o;
}

function filter(obj, fn) {
var iaArr = isArray(obj);
var o = iaArr ? [] : {};
Expand All @@ -219,6 +226,7 @@ function filter(obj, fn) {
}
return o;
}

var binaryBase64 = function (str) {
var i, len, char, res = '';
for (i = 0, len = str.length / 2; i < len; i++) {
Expand Down Expand Up @@ -392,6 +400,7 @@ var throttleOnProgress = function (total, onProgress) {
var time0 = Date.now();
var time1;
var timer;

function update() {
timer = 0;
if (onProgress && (typeof onProgress === 'function')) {
Expand All @@ -411,6 +420,7 @@ var throttleOnProgress = function (total, onProgress) {
}
}
}

return function (info, immediately) {
if (info) {
size1 = info.loaded;
Expand All @@ -428,62 +438,14 @@ var throttleOnProgress = function (total, onProgress) {

var getFileSize = function (api, params, callback) {
var size;
if (util.isBrowser) {
if (typeof params.Body === 'string') {
params.Body = new global.Blob([params.Body]);
}
if (params.Body instanceof global.File || params.Body instanceof global.Blob) {
size = params.Body.size;
} else {
callback({error: 'params body format error, Only allow File|Blob|String.'});
return;
}
if (typeof params.Body === 'string') {
params.Body = new Blob([params.Body]);
}
if (params.Body instanceof window.File || params.Body instanceof window.Blob) {
size = params.Body.size;
} else {
if (api === 'sliceUploadFile') {
if (params.FilePath) {
fs.stat(params.FilePath, function (err, fileStats) {
if (err) {
if (params.ContentLength !== undefined) {
size = params.ContentLength;
} else {
callback(err);
return;
}
} else {
params.FileStat = fileStats;
params.FileStat.FilePath = params.FilePath;
size = fileStats.size;
}
params.ContentLength = size = size || 0;
callback(null, size);
});
return;
} else {
callback({error: 'missing param FilePath'});
return;
}
} else {
if (params.Body !== undefined) {
if (typeof params.Body === 'string') {
params.Body = global.Buffer.from(params.Body);
}
if (params.Body instanceof global.Buffer) {
size = params.Body.length;
} else if (typeof params.Body.pipe === 'function') {
if (params.ContentLength === undefined) {
size = undefined;
} else {
size = params.ContentLength;
}
} else {
callback({error: 'params Body format error, Only allow Buffer|Stream|String.'});
return;
}
} else {
callback({error: 'missing param Body'});
return;
}
}
callback({error: 'params body format error, Only allow File|Blob|String.'});
return;
}
params.ContentLength = size;
callback(null, size);
Expand Down

0 comments on commit f45024b

Please sign in to comment.