@@ -6069,6 +6069,197 @@ group('sliceUploadFile() 续传', function () {
6069
6069
} ) ;
6070
6070
} ) ;
6071
6071
6072
+
6073
+ group ( 'getObject() 默认开启合并 Key 校验' , function ( ) {
6074
+ function getObjectErrorKey ( Key , done ) {
6075
+ cos . getObject (
6076
+ {
6077
+ Bucket : config . Bucket ,
6078
+ Region : config . Region ,
6079
+ Key,
6080
+ } ,
6081
+ function ( err , data ) {
6082
+ assert . ok ( err . message === 'The Getobject Key is illegal' ) ;
6083
+ done ( ) ;
6084
+ }
6085
+ ) ;
6086
+ }
6087
+ test ( 'getObject() object The Getobject Key is illegal 1' , function ( done ) {
6088
+ getObjectErrorKey ( '///////' , done ) ;
6089
+ } ) ;
6090
+ test ( 'getObject() object The Getobject Key is illegal 2' , function ( done ) {
6091
+ getObjectErrorKey ( '/abc/../' , done ) ;
6092
+ } ) ;
6093
+ test ( 'getObject() object The Getobject Key is illegal 3' , function ( done ) {
6094
+ getObjectErrorKey ( '/./' , done ) ;
6095
+ } ) ;
6096
+ test ( 'getObject() object The Getobject Key is illegal 4' , function ( done ) {
6097
+ getObjectErrorKey ( '///abc/.//def//../../' , done ) ;
6098
+ } ) ;
6099
+ test ( 'getObject() object The Getobject Key is illegal 5' , function ( done ) {
6100
+ getObjectErrorKey ( '/././///abc/.//def//../../' , done ) ;
6101
+ } ) ;
6102
+ } ) ;
6103
+
6104
+ group ( 'getObject() 手动关闭合并 Key 校验' , function ( ) {
6105
+ var cos = new COS ( {
6106
+ // 必选参数
6107
+ SecretId : config . SecretId ,
6108
+ SecretKey : config . SecretKey ,
6109
+ Protocol : 'http' ,
6110
+ ObjectKeySimplifyCheck : false ,
6111
+ } ) ;
6112
+ function putObjectAndGetObject ( Key , done ) {
6113
+ const Body = Key ;
6114
+ cos . putObject ( {
6115
+ Bucket : config . Bucket ,
6116
+ Region : config . Region ,
6117
+ Key,
6118
+ Body,
6119
+ } , function ( err , data ) {
6120
+ if ( err ) {
6121
+ done ( err ) ;
6122
+ } else {
6123
+ cos . getObject (
6124
+ {
6125
+ Bucket : config . Bucket ,
6126
+ Region : config . Region ,
6127
+ Key,
6128
+ } ,
6129
+ function ( err , data ) {
6130
+ assert . ok ( data . Body . toString ( ) === Body ) ;
6131
+ done ( ) ;
6132
+ }
6133
+ ) ;
6134
+ }
6135
+ } ) ;
6136
+ }
6137
+ test ( 'getObject() object The Getobject Key is illegal 1' , function ( done ) {
6138
+ // 会转成 getBucket
6139
+ cos . getObject (
6140
+ {
6141
+ Bucket : config . Bucket ,
6142
+ Region : config . Region ,
6143
+ Key : '///////' ,
6144
+ } ,
6145
+ function ( err , data ) {
6146
+ assert . ok ( data . Body . toString ( ) . includes ( 'ListBucketResult' ) ) ;
6147
+ done ( ) ;
6148
+ }
6149
+ ) ;
6150
+ } ) ;
6151
+ test ( 'getObject() object The Getobject Key is illegal 2' , function ( done ) {
6152
+ putObjectAndGetObject ( '/abc/../' , done ) ;
6153
+ } ) ;
6154
+ test ( 'getObject() object The Getobject Key is illegal 3' , function ( done ) {
6155
+ // 会转成 getBucket
6156
+ cos . getObject (
6157
+ {
6158
+ Bucket : config . Bucket ,
6159
+ Region : config . Region ,
6160
+ Key : '/./' ,
6161
+ } ,
6162
+ function ( err , data ) {
6163
+ assert . ok ( data . Body . toString ( ) . includes ( 'ListBucketResult' ) ) ;
6164
+ done ( ) ;
6165
+ }
6166
+ ) ;
6167
+ } ) ;
6168
+ test ( 'getObject() object The Getobject Key is illegal 4' , function ( done ) {
6169
+ putObjectAndGetObject ( '///abc/.//def//../../' , done ) ;
6170
+ } ) ;
6171
+ test ( 'getObject() object The Getobject Key is illegal 5' , function ( done ) {
6172
+ putObjectAndGetObject ( '/././///abc/.//def//../../' , done ) ;
6173
+ } ) ;
6174
+ } ) ;
6175
+
6176
+ group ( 'downloadFile() 默认开启合并 Key 校验' , function ( ) {
6177
+ function downloadFileErrorKey ( Key , done ) {
6178
+ cos . downloadFile (
6179
+ {
6180
+ Bucket : config . Bucket ,
6181
+ Region : config . Region ,
6182
+ Key,
6183
+ FilePath : './' + Key
6184
+ } ,
6185
+ function ( err , data ) {
6186
+ assert . ok ( err . message === 'The Getobject Key is illegal' ) ;
6187
+ done ( ) ;
6188
+ }
6189
+ ) ;
6190
+ }
6191
+ test ( 'downloadFile() object The Getobject Key is illegal 1' , function ( done ) {
6192
+ downloadFileErrorKey ( '///////' , done ) ;
6193
+ } ) ;
6194
+ test ( 'downloadFile() object The Getobject Key is illegal 2' , function ( done ) {
6195
+ downloadFileErrorKey ( '/abc/../' , done ) ;
6196
+ } ) ;
6197
+ test ( 'downloadFile() object The Getobject Key is illegal 3' , function ( done ) {
6198
+ downloadFileErrorKey ( '/./' , done ) ;
6199
+ } ) ;
6200
+ test ( 'downloadFile() object The Getobject Key is illegal 4' , function ( done ) {
6201
+ downloadFileErrorKey ( '///abc/.//def//../../' , done ) ;
6202
+ } ) ;
6203
+ test ( 'downloadFile() object The Getobject Key is illegal 5' , function ( done ) {
6204
+ downloadFileErrorKey ( '/././///abc/.//def//../../' , done ) ;
6205
+ } ) ;
6206
+ } ) ;
6207
+
6208
+ group ( 'downloadFile() 手动关闭合并 Key 校验' , function ( ) {
6209
+ var cos = new COS ( {
6210
+ // 必选参数
6211
+ SecretId : config . SecretId ,
6212
+ SecretKey : config . SecretKey ,
6213
+ Protocol : 'http' ,
6214
+ ObjectKeySimplifyCheck : false ,
6215
+ } ) ;
6216
+ function getObjectOrGetBucket ( Key , hasEtag , done ) {
6217
+ const Body = Key ;
6218
+ cos . putObject ( {
6219
+ Bucket : config . Bucket ,
6220
+ Region : config . Region ,
6221
+ Key,
6222
+ Body,
6223
+ } , function ( err , data ) {
6224
+ if ( err ) {
6225
+ done ( ) ;
6226
+ } else {
6227
+ cos . downloadFile (
6228
+ {
6229
+ Bucket : config . Bucket ,
6230
+ Region : config . Region ,
6231
+ Key,
6232
+ FilePath : './testFile'
6233
+ } ,
6234
+ function ( err , data ) {
6235
+ const isGetBucket = data . ETag === '' ;
6236
+ const isGetObject = data . ETag !== '' ;
6237
+ const ok = hasEtag ? isGetObject : isGetBucket ;
6238
+ fs . unlinkSync ( './testFile' ) ;
6239
+ assert . ok ( ok ) ;
6240
+ done ( ) ;
6241
+ }
6242
+ ) ;
6243
+ }
6244
+ } ) ;
6245
+ }
6246
+ test ( 'downloadFile() object The Getobject Key is illegal 1' , function ( done ) {
6247
+ getObjectOrGetBucket ( '///////' , false , done ) ;
6248
+ } ) ;
6249
+ test ( 'downloadFile() object The Getobject Key is illegal 2' , function ( done ) {
6250
+ getObjectOrGetBucket ( '/abc/../' , true , done ) ;
6251
+ } ) ;
6252
+ test ( 'downloadFile() object The Getobject Key is illegal 3' , function ( done ) {
6253
+ getObjectOrGetBucket ( '/./' , false , done ) ;
6254
+ } ) ;
6255
+ test ( 'downloadFile() object The Getobject Key is illegal 4' , function ( done ) {
6256
+ getObjectOrGetBucket ( '///abc/.//def//../../' , true , done ) ;
6257
+ } ) ;
6258
+ test ( 'downloadFile() object The Getobject Key is illegal 5' , function ( done ) {
6259
+ getObjectOrGetBucket ( '/././///abc/.//def//../../' , true , done ) ;
6260
+ } ) ;
6261
+ } ) ;
6262
+
6072
6263
group ( 'getStream() 流式下载 ECONNREFUSED 错误' , function ( ) {
6073
6264
test ( 'getStream() 流式下载 ECONNREFUSED 错误' , function ( done , assert ) {
6074
6265
cos . options . Domain = '127.0.0.1:12345' ;
@@ -6155,6 +6346,7 @@ group('downloadFile', function () {
6155
6346
} ) ;
6156
6347
test ( 'downloadFile() fileSize=0' , function ( done , assert ) {
6157
6348
var Key = '0b.zip' ;
6349
+ var FilePath = './' + Key ;
6158
6350
cos . downloadFile (
6159
6351
{
6160
6352
Bucket : config . Bucket , // Bucket 格式:test-1250000000
@@ -6167,7 +6359,8 @@ group('downloadFile', function () {
6167
6359
TaskId : '123' , // 可以自己生成TaskId,用于取消下载
6168
6360
} ,
6169
6361
function ( err , data ) {
6170
- assert . ok ( err ) ;
6362
+ fs . unlinkSync ( FilePath ) ;
6363
+ assert . ok ( ! err ) ;
6171
6364
done ( ) ;
6172
6365
}
6173
6366
) ;
@@ -6198,6 +6391,7 @@ group('downloadFile', function () {
6198
6391
TaskId : '123' , // 可以自己生成TaskId,用于取消下载
6199
6392
} ,
6200
6393
function ( err , data ) {
6394
+ fs . unlinkSync ( filePath ) ;
6201
6395
assert . ok ( ! err ) ;
6202
6396
done ( ) ;
6203
6397
}
@@ -6238,6 +6432,7 @@ group('downloadFile', function () {
6238
6432
TaskId : '123' , // 可以自己生成TaskId,用于取消下载
6239
6433
} ,
6240
6434
function ( err , data ) {
6435
+ fs . unlinkSync ( filePath ) ;
6241
6436
assert . ok ( ! err ) ;
6242
6437
done ( ) ;
6243
6438
}
@@ -6345,6 +6540,7 @@ group('downloadFile', function () {
6345
6540
onProgress : function ( progressData ) {
6346
6541
if ( progressData . percent >= 0.1 ) {
6347
6542
cos . emit ( 'inner-kill-task' , { TaskId : 'downloadFile-123' } ) ;
6543
+ fs . unlinkSync ( filePath ) ;
6348
6544
assert . ok ( 1 ) ;
6349
6545
done ( ) ;
6350
6546
}
0 commit comments