Skip to content

Commit 6e729ee

Browse files
authoredMay 1, 2020
fix: correctly set content-length size when payload has unicode characters (#847)
1 parent 6eae237 commit 6e729ee

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed
 

‎src/main/minio.js

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import querystring from 'querystring'
2727
import mkdirp from 'mkdirp'
2828
import path from 'path'
2929
import _ from 'lodash'
30+
import util from 'util'
3031

3132
import { extractMetadata, prependXAMZMeta, isValidPrefix, isValidEndpoint, isValidBucketName,
3233
isValidPort, isValidObjectName, isAmazonEndpoint, getScope,
@@ -1483,6 +1484,8 @@ export class Client {
14831484
if (result.list.length > 0) {
14841485
result.listOfList.push(result.list)
14851486
}
1487+
1488+
const encoder = new util.TextEncoder()
14861489

14871490
async.eachSeries(result.listOfList, (list, callback) => {
14881491
var deleteObjects={"Delete":[{"Quiet": true}]}
@@ -1492,6 +1495,7 @@ export class Client {
14921495
})
14931496

14941497
let payload = Xml(deleteObjects)
1498+
payload = encoder.encode(payload)
14951499

14961500
var headers = {}
14971501
var md5digest = Crypto.createHash('md5').update(payload).digest()

‎src/test/functional/functional-tests.js

+13
Original file line numberDiff line numberDiff line change
@@ -1179,6 +1179,19 @@ describe('functional tests', function() {
11791179
})
11801180
})
11811181

1182+
// Non latin characters
1183+
step(`putObject(bucketName, objectName, stream)_bucketName:${bucketName}, objectName:fileΩ, stream:1b`, done => {
1184+
client.putObject(bucketName, 'fileΩ', _1byte)
1185+
.then(() => done())
1186+
.catch(done)
1187+
})
1188+
1189+
step(`removeObjects with non latin charactes`, done => {
1190+
client.removeObjects(bucketName, ['fileΩ'])
1191+
.then(() => done())
1192+
.catch(done)
1193+
})
1194+
11821195
})
11831196

11841197

0 commit comments

Comments
 (0)
Please sign in to comment.