Skip to content

Commit 3ac125c

Browse files
authored
feat: 1.7.0 (#103)
feat: getObject 新增校验 Key
1 parent 8c61b5d commit 3ac125c

File tree

8 files changed

+13632
-13539
lines changed

8 files changed

+13632
-13539
lines changed

demo-album/lib/cos-wx-sdk-v5.js

Lines changed: 6802 additions & 6768 deletions
Large diffs are not rendered by default.

demo-album/lib/cos-wx-sdk-v5.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/lib/cos-wx-sdk-v5.js

Lines changed: 6802 additions & 6768 deletions
Large diffs are not rendered by default.

demo/lib/cos-wx-sdk-v5.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cos-wx-sdk-v5",
3-
"version": "1.6.2",
3+
"version": "1.7.0",
44
"description": "小程序 SDK for [腾讯云对象存储服务](https://cloud.tencent.com/product/cos)",
55
"main": "demo/lib/cos-wx-sdk-v5.min.js",
66
"scripts": {

src/base.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,6 +2020,14 @@ function listObjectVersions(params, callback) {
20202020
* @param {Object} data 为对应的 object 数据,包括 body 和 headers
20212021
*/
20222022
function getObject(params, callback) {
2023+
if (this.options.ObjectKeySimplifyCheck) {
2024+
// getObject 的 Key 需要校验,避免调用成 getBucket
2025+
var formatKey = util.simplifyPath(params.Key);
2026+
if (formatKey === '/') {
2027+
callback(util.error(new Error('The Getobject Key is illegal')));
2028+
return;
2029+
}
2030+
}
20232031
var reqParams = params.Query || {};
20242032
var reqParamsStr = params.QueryString || '';
20252033
var tracker = params.tracker;

src/cos.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ var defaultOptions = {
3939
SimpleUploadMethod: 'postObject', // 高级上传内部判断需要走简单上传时,指定的上传方法,可选postObject或putObject
4040
AutoSwitchHost: false,
4141
CopySourceParser: null, // 自定义拷贝源解析器
42+
ObjectKeySimplifyCheck: true, // 开启合并校验 getObject Key
4243
/** 上报相关配置 **/
4344
DeepTracker: false, // 上报时是否对每个分块上传做单独上报
4445
TrackerDelay: 5000, // 周期性上报,单位毫秒。0代表实时上报

src/util.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,21 @@ const encodeBase64 = function (str, safe) {
743743
return base64Str;
744744
};
745745

746+
var simplifyPath = function (path) {
747+
const names = path.split('/');
748+
const stack = [];
749+
for (const name of names) {
750+
if (name === '..') {
751+
if (stack.length) {
752+
stack.pop();
753+
}
754+
} else if (name.length && name !== '.') {
755+
stack.push(name);
756+
}
757+
}
758+
return '/' + stack.join('/');
759+
};
760+
746761
var util = {
747762
noop: noop,
748763
formatParams: formatParams,
@@ -778,6 +793,7 @@ var util = {
778793
error: error,
779794
getSourceParams: getSourceParams,
780795
encodeBase64: encodeBase64,
796+
simplifyPath: simplifyPath
781797
};
782798

783799
module.exports = util;

0 commit comments

Comments
 (0)