Skip to content

Commit

Permalink
Merge pull request #114 from livehigh/feat/uploadPart-headers
Browse files Browse the repository at this point in the history
feat:uploadPart新增headers白名单
  • Loading branch information
carsonxu authored Jul 1, 2021
2 parents ca19ef2 + 62c6dd7 commit 0678ab7
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 11 deletions.
26 changes: 21 additions & 5 deletions dist/cos-js-sdk-v5.js
Original file line number Diff line number Diff line change
Expand Up @@ -2422,7 +2422,7 @@ base.init(COS, task);
advance.init(COS, task);

COS.getAuthorization = util.getAuth;
COS.version = '1.2.14';
COS.version = '1.2.15';

module.exports = COS;

Expand Down Expand Up @@ -7771,7 +7771,9 @@ function getObjectUrl(params, callback) {
Region: params.Region || '',
Method: params.Method || 'get',
Key: params.Key,
Expires: params.Expires
Expires: params.Expires,
Headers: params.Headers,
Query: params.Query
}, function (err, AuthData) {
if (!callback) return;
if (err) {
Expand Down Expand Up @@ -8589,9 +8591,10 @@ function sliceUploadFile(params, callback) {
// 上传过程中出现错误,返回错误
ep.on('error', function (err) {
if (!self._isRunningTask(TaskId)) return;
var _err = util.extend({
UploadId: params.UploadData.UploadId || ''
}, err);
var _err = {
UploadId: params.UploadData.UploadId || '',
err: err
};
return callback(_err);
});

Expand Down Expand Up @@ -8651,6 +8654,7 @@ function sliceUploadFile(params, callback) {
AsyncLimit: AsyncLimit,
ServerSideEncryption: ServerSideEncryption,
UploadData: UploadData,
Headers: params.Headers,
onProgress: onProgress
}, function (err, data) {
if (!self._isRunningTask(TaskId)) return;
Expand Down Expand Up @@ -9078,6 +9082,7 @@ function uploadSliceList(params, cb) {
var SliceCount = Math.ceil(FileSize / SliceSize);
var FinishSize = 0;
var ServerSideEncryption = params.ServerSideEncryption;
var Headers = params.Headers;
var needUploadSlices = util.filter(UploadData.PartList, function (SliceItem) {
if (SliceItem['Uploaded']) {
FinishSize += SliceItem['PartNumber'] >= SliceCount ? FileSize % SliceSize || SliceSize : SliceSize;
Expand All @@ -9102,6 +9107,7 @@ function uploadSliceList(params, cb) {
ServerSideEncryption: ServerSideEncryption,
Body: Body,
UploadData: UploadData,
Headers: Headers,
onProgress: function (data) {
FinishSize += data.loaded - preAddSize;
preAddSize = data.loaded;
Expand Down Expand Up @@ -9142,6 +9148,7 @@ function uploadSliceItem(params, callback) {
var SliceSize = params.SliceSize;
var ServerSideEncryption = params.ServerSideEncryption;
var UploadData = params.UploadData;
var Headers = params.Headers || {};
var ChunkRetryTimes = self.options.ChunkRetryTimes + 1;

var start = SliceSize * (PartNumber - 1);
Expand All @@ -9155,6 +9162,14 @@ function uploadSliceItem(params, callback) {
ContentLength = end - start;
}

var headersWhiteList = ['x-cos-traffic-limit', 'x-cos-mime-limit'];
var headers = {};
util.each(Headers, function (v, k) {
if (headersWhiteList.indexOf(k) > -1) {
headers[k] = v;
}
});

var PartItem = UploadData.PartList[PartNumber - 1];
Async.retry(ChunkRetryTimes, function (tryCallback) {
if (!self._isRunningTask(TaskId)) return;
Expand All @@ -9169,6 +9184,7 @@ function uploadSliceItem(params, callback) {
UploadId: UploadData.UploadId,
ServerSideEncryption: ServerSideEncryption,
Body: Body,
Headers: headers,
onProgress: params.onProgress
}, function (err, data) {
if (!self._isRunningTask(TaskId)) return;
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": "1.2.14",
"version": "1.2.15",
"description": "JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)",
"main": "index.js",
"types": "index.d.ts",
Expand Down
20 changes: 17 additions & 3 deletions src/advance.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ function sliceUploadFile(params, callback) {
// 上传过程中出现错误,返回错误
ep.on('error', function (err) {
if (!self._isRunningTask(TaskId)) return;
var _err = util.extend({
UploadId: params.UploadData.UploadId || ''
}, err);
var _err = {
UploadId: params.UploadData.UploadId || '',
err: err,
};
return callback(_err);
});

Expand Down Expand Up @@ -86,6 +87,7 @@ function sliceUploadFile(params, callback) {
AsyncLimit: AsyncLimit,
ServerSideEncryption: ServerSideEncryption,
UploadData: UploadData,
Headers: params.Headers,
onProgress: onProgress
}, function (err, data) {
if (!self._isRunningTask(TaskId)) return;
Expand Down Expand Up @@ -512,6 +514,7 @@ function uploadSliceList(params, cb) {
var SliceCount = Math.ceil(FileSize / SliceSize);
var FinishSize = 0;
var ServerSideEncryption = params.ServerSideEncryption;
var Headers = params.Headers;
var needUploadSlices = util.filter(UploadData.PartList, function (SliceItem) {
if (SliceItem['Uploaded']) {
FinishSize += SliceItem['PartNumber'] >= SliceCount ? (FileSize % SliceSize || SliceSize) : SliceSize;
Expand All @@ -536,6 +539,7 @@ function uploadSliceList(params, cb) {
ServerSideEncryption: ServerSideEncryption,
Body: Body,
UploadData: UploadData,
Headers: Headers,
onProgress: function (data) {
FinishSize += data.loaded - preAddSize;
preAddSize = data.loaded;
Expand Down Expand Up @@ -576,6 +580,7 @@ function uploadSliceItem(params, callback) {
var SliceSize = params.SliceSize;
var ServerSideEncryption = params.ServerSideEncryption;
var UploadData = params.UploadData;
var Headers = params.Headers || {};
var ChunkRetryTimes = self.options.ChunkRetryTimes + 1;

var start = SliceSize * (PartNumber - 1);
Expand All @@ -589,6 +594,14 @@ function uploadSliceItem(params, callback) {
ContentLength = end - start;
}

var headersWhiteList = ['x-cos-traffic-limit', 'x-cos-mime-limit'];
var headers = {};
util.each(Headers, function(v, k) {
if (headersWhiteList.indexOf(k) > -1) {
headers[k] = v;
}
});

var PartItem = UploadData.PartList[PartNumber - 1];
Async.retry(ChunkRetryTimes, function (tryCallback) {
if (!self._isRunningTask(TaskId)) return;
Expand All @@ -603,6 +616,7 @@ function uploadSliceItem(params, callback) {
UploadId: UploadData.UploadId,
ServerSideEncryption: ServerSideEncryption,
Body: Body,
Headers: headers,
onProgress: params.onProgress,
}, function (err, data) {
if (!self._isRunningTask(TaskId)) return;
Expand Down
2 changes: 2 additions & 0 deletions src/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -2960,6 +2960,8 @@ function getObjectUrl(params, callback) {
Method: params.Method || 'get',
Key: params.Key,
Expires: params.Expires,
Headers: params.Headers,
Query: params.Query,
}, function (err, AuthData) {
if (!callback) return;
if (err) {
Expand Down
2 changes: 1 addition & 1 deletion src/cos.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ base.init(COS, task);
advance.init(COS, task);

COS.getAuthorization = util.getAuth;
COS.version = '1.2.14';
COS.version = '1.2.15';

module.exports = COS;

0 comments on commit 0678ab7

Please sign in to comment.