Skip to content

Commit 1c38432

Browse files
committed
修复 Location 错误
1 parent 92a9144 commit 1c38432

File tree

5 files changed

+34
-10
lines changed

5 files changed

+34
-10
lines changed

demo/demo.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ function getObjectUrl() {
3737
Region: config.Region,
3838
Key: '1mb.zip',
3939
Expires: 60,
40+
Sign: true,
4041
}, function (err, data) {
4142
console.log(err || data);
4243
});
@@ -46,7 +47,7 @@ function getObjectUrl() {
4647
function putBucket() {
4748
cos.putBucket({
4849
Bucket: 'testnew-' + config.Bucket.substr(config.Bucket.indexOf('-') + 1),
49-
Region: config.Region
50+
Region: 'ap-guangzhou'
5051
}, function (err, data) {
5152
console.log(err || data);
5253
});
@@ -346,8 +347,8 @@ function deleteBucketReplication() {
346347

347348
function deleteBucket() {
348349
cos.deleteBucket({
349-
Bucket: 'testnew',
350-
Region: config.Region
350+
Bucket: 'testnew-' + config.Bucket.substr(config.Bucket.indexOf('-') + 1),
351+
Region: 'ap-guangzhou'
351352
}, function (err, data) {
352353
console.log(err || data);
353354
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cos-nodejs-sdk-v5",
3-
"version": "2.2.2",
3+
"version": "2.2.3",
44
"description": "cos nodejs sdk v5",
55
"main": "index.js",
66
"scripts": {

sdk/advance.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,10 +473,7 @@ function uploadSliceItem(params, callback) {
473473
ContentLength = end - start;
474474
}
475475

476-
var Body = fs.createReadStream(FilePath, {
477-
start: start,
478-
end: end - 1
479-
});
476+
var Body = fs.createReadStream(FilePath, {start: start, end: end - 1});
480477
var PartItem = UploadData.PartList[PartNumber - 1];
481478
var ContentSha1 = PartItem.ETag;
482479
Async.retry(sliceRetryTimes, function (tryCallback) {

sdk/base.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ function putBucket(params, callback) {
187187
domain: self.options.Domain,
188188
bucket: params.Bucket,
189189
region: params.Region,
190-
appId: appId
190+
appId: appId,
191+
isLocation: true,
191192
});
192193
callback(null, {
193194
Location: url,
@@ -1143,7 +1144,15 @@ function putObject(params, callback) {
11431144
return callback(err);
11441145
}
11451146
if (data && data.headers && data.headers['etag']) {
1147+
var url = getUrl({
1148+
domain: self.options.Domain,
1149+
bucket: params.Bucket,
1150+
region: params.Region,
1151+
appId: params.AppId,
1152+
object: params.Key,
1153+
});
11461154
return callback(null, {
1155+
Location: url,
11471156
ETag: data.headers['etag'],
11481157
statusCode: data.statusCode,
11491158
headers: data.headers,
@@ -1618,6 +1627,7 @@ function multipartUpload(params, callback) {
16181627
* @return {Object} data.CompleteMultipartUpload 完成分块上传后的文件信息,包括Location, Bucket, Key 和 ETag
16191628
*/
16201629
function multipartComplete(params, callback) {
1630+
var self = this;
16211631
var headers = {};
16221632

16231633
headers['Content-Type'] = 'application/xml';
@@ -1659,7 +1669,16 @@ function multipartComplete(params, callback) {
16591669
if (err) {
16601670
return callback(err);
16611671
}
1672+
var url = getUrl({
1673+
domain: self.options.Domain,
1674+
bucket: params.Bucket,
1675+
region: params.Region,
1676+
appId: params.AppId,
1677+
object: params.Key,
1678+
isLocation: true,
1679+
});
16621680
var result = util.extend(data.CompleteMultipartUploadResult, {
1681+
Location: url,
16631682
statusCode: data.statusCode,
16641683
headers: data.headers,
16651684
});
@@ -1848,6 +1867,10 @@ function getObjectUrl(params, callback) {
18481867
appId: params.AppId || self.options.AppId || '',
18491868
object: params.Key,
18501869
});
1870+
if (params.Sign !== undefined && !params.Sign) {
1871+
callback(null, {Url: url});
1872+
return url;
1873+
}
18511874
var authorization = getAuthorizationAsync.call(this, {
18521875
Method: params.Method || 'get',
18531876
Key: params.Key,
@@ -1951,6 +1974,9 @@ function getUrl(params) {
19511974
if (action) {
19521975
url += action;
19531976
}
1977+
if (params.isLocation) {
1978+
url = url.replace(/^https?:\/\//, '');
1979+
}
19541980
return url;
19551981
}
19561982

test/test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ describe('putBucket()', function () {
143143
Bucket: NewBucket,
144144
Region: config.Region
145145
}, function (err, data) {
146-
assert.equal('http://' + NewBucket + '.cos.' + config.Region + '.myqcloud.com', data.Location);
146+
assert.equal(NewBucket + '.cos.' + config.Region + '.myqcloud.com', data.Location);
147147
cos.headBucket({
148148
Bucket: NewBucket,
149149
Region: config.Region

0 commit comments

Comments
 (0)