Skip to content

Commit e5659cc

Browse files
authored
feat: add options.ctx for every request params (#144)
* refactor: make new OssClient() faster
1 parent eaeb903 commit e5659cc

17 files changed

Lines changed: 284 additions & 351 deletions

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ sudo: false
22
language: node_js
33
node_js:
44
- '6'
5-
- '5'
65
- '4'
76
env:
87
global:
@@ -16,4 +15,4 @@ env:
1615
- secure: Og1xl8+NoUfc3ZlWT/yVOPy/8YhRHVNT2M+LVZ81iRwJNBxwm1cj40cck41Py2eG3AwH0yCj0K3u+o74fOHbTuYLzNskB1gYbA8m6v2vuMnGRblb6+UYEm3yUcYHJ4VXFMmFTMKyNoe/iqEpetgoKffbCAk3Xa7kZbbQR7T03tI=
1716
script: npm run test-cov
1817
after_script:
19-
- npm i codecov.io && cat ./coverage/coverage.json | ./node_modules/codecov.io/bin/codecov.io.js
18+
- npm i codecov && codecov

lib/bucket.js

Lines changed: 36 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,18 @@
1-
/**!
2-
* Copyright(c) ali-sdk and other contributors.
3-
* MIT Licensed
4-
*
5-
* Authors:
6-
* fengmk2 <m@fengmk2.com> (http://fengmk2.com)
7-
*/
8-
91
'use strict';
102

11-
/**
12-
* Module dependencies.
13-
*/
14-
153
var proto = exports;
164

175
/**
186
* Bucket opertaions
197
*/
208

21-
proto.listBuckets = function* (query, options) {
9+
proto.listBuckets = function* listBuckets(query, options) {
2210
// prefix, marker, max-keys
23-
var result = yield* this.request({
11+
var result = yield this.request({
2412
method: 'GET',
2513
query: query,
26-
timeout: options && options.timeout
14+
timeout: options && options.timeout,
15+
ctx: options && options.ctx,
2716
});
2817

2918
if (result.status === 200) {
@@ -56,15 +45,15 @@ proto.listBuckets = function* (query, options) {
5645
};
5746
}
5847

59-
throw yield* this.requestError(result);
48+
throw yield this.requestError(result);
6049
};
6150

62-
proto.useBucket = function (name, region) {
51+
proto.useBucket = function useBucket(name, region) {
6352
this.options.bucket = name;
6453
return this;
6554
};
6655

67-
proto.putBucket = function* (name, region, options) {
56+
proto.putBucket = function* putBucket(name, region, options) {
6857
var params = this._bucketRequestParams('PUT', name, '', options);
6958
if (region) {
7059
params.mime = 'xml';
@@ -80,20 +69,20 @@ proto.putBucket = function* (name, region, options) {
8069
};
8170
};
8271

83-
proto.deleteBucket = function* (name, region, options) {
72+
proto.deleteBucket = function* deleteBucket(name, region, options) {
8473
var params = this._bucketRequestParams('DELETE', name, '', options);
85-
var result = yield* this.request(params);
74+
var result = yield this.request(params);
8675
if (result.status === 200 || result.status === 204) {
8776
return {
8877
res: result.res
8978
};
9079
}
91-
throw yield* this.requestError(result);
80+
throw yield this.requestError(result);
9281
};
9382

9483
// acl
9584

96-
proto.putBucketACL = function* (name, region, acl, options) {
85+
proto.putBucketACL = function* putBucketACL(name, region, acl, options) {
9786
var params = this._bucketRequestParams('PUT', name, 'acl', options);
9887
params.headers = {
9988
'x-oss-acl': acl
@@ -106,11 +95,11 @@ proto.putBucketACL = function* (name, region, acl, options) {
10695
};
10796
};
10897

109-
proto.getBucketACL = function* (name, region, options) {
98+
proto.getBucketACL = function* getBucketACL(name, region, options) {
11099
var params = this._bucketRequestParams('GET', name, 'acl', options);
111100
params.successStatuses = [200];
112101
params.xmlResponse = true;
113-
var result = yield* this.request(params);
102+
var result = yield this.request(params);
114103
return {
115104
acl: result.data.AccessControlList.Grant,
116105
owner: {
@@ -123,7 +112,7 @@ proto.getBucketACL = function* (name, region, options) {
123112

124113
// logging
125114

126-
proto.putBucketLogging = function* (name, region, prefix, options) {
115+
proto.putBucketLogging = function* putBucketLogging(name, region, prefix, options) {
127116
var params = this._bucketRequestParams('PUT', name, 'logging', options);
128117
var xml = '<?xml version="1.0" encoding="UTF-8"?>\n<BucketLoggingStatus>\n' +
129118
'<LoggingEnabled>\n<TargetBucket>' + name + '</TargetBucket>\n';
@@ -140,7 +129,7 @@ proto.putBucketLogging = function* (name, region, prefix, options) {
140129
};
141130
};
142131

143-
proto.getBucketLogging = function* (name, region, options) {
132+
proto.getBucketLogging = function* getBucketLogging(name, region, options) {
144133
var params = this._bucketRequestParams('GET', name, 'logging', options);
145134
params.successStatuses = [200];
146135
params.xmlResponse = true;
@@ -153,7 +142,7 @@ proto.getBucketLogging = function* (name, region, options) {
153142
};
154143
};
155144

156-
proto.deleteBucketLogging = function* (name, region, options) {
145+
proto.deleteBucketLogging = function* deleteBucketLogging(name, region, options) {
157146
var params = this._bucketRequestParams('DELETE', name, 'logging', options);
158147
params.successStatuses = [204, 200];
159148
var result = yield this.request(params);
@@ -164,7 +153,7 @@ proto.deleteBucketLogging = function* (name, region, options) {
164153

165154
// website
166155

167-
proto.putBucketWebsite = function* (name, region, config, options) {
156+
proto.putBucketWebsite = function* putBucketWebsite(name, region, config, options) {
168157
// config: index, [error]
169158
var params = this._bucketRequestParams('PUT', name, 'website', options);
170159
config = config || {};
@@ -184,30 +173,30 @@ proto.putBucketWebsite = function* (name, region, config, options) {
184173
};
185174
};
186175

187-
proto.getBucketWebsite = function* (name, region, options) {
176+
proto.getBucketWebsite = function* getBucketWebsite(name, region, options) {
188177
var params = this._bucketRequestParams('GET', name, 'website', options);
189178
params.successStatuses = [200];
190179
params.xmlResponse = true;
191-
var result = yield* this.request(params);
180+
var result = yield this.request(params);
192181
return {
193182
index: result.data.IndexDocument.Suffix,
194183
error: result.data.ErrorDocument && result.data.ErrorDocument.Key || null,
195184
res: result.res
196185
};
197186
};
198187

199-
proto.deleteBucketWebsite = function* (name, region, options) {
188+
proto.deleteBucketWebsite = function* deleteBucketWebsite(name, region, options) {
200189
var params = this._bucketRequestParams('DELETE', name, 'website', options);
201190
params.successStatuses = [204];
202-
var result = yield* this.request(params);
191+
var result = yield this.request(params);
203192
return {
204193
res: result.res
205194
};
206195
};
207196

208197
// lifecycle
209198

210-
proto.putBucketLifecycle = function* (name, region, rules, options) {
199+
proto.putBucketLifecycle = function* putBucketLifecycle(name, region, rules, options) {
211200
// rules: [rule, ...]
212201
// rule: [id], prefix, status, expiration, [days or date]
213202
// status: 'Enabled' or 'Disabled'
@@ -230,17 +219,17 @@ proto.putBucketLifecycle = function* (name, region, rules, options) {
230219
params.content = xml;
231220
params.mime = 'xml';
232221
params.successStatuses = [200];
233-
var result = yield* this.request(params);
222+
var result = yield this.request(params);
234223
return {
235224
res: result.res
236225
};
237226
};
238227

239-
proto.getBucketLifecycle = function* (name, region, options) {
228+
proto.getBucketLifecycle = function* getBucketLifecycle(name, region, options) {
240229
var params = this._bucketRequestParams('GET', name, 'lifecycle', options);
241230
params.successStatuses = [200];
242231
params.xmlResponse = true;
243-
var result = yield* this.request(params);
232+
var result = yield this.request(params);
244233
var rules = result.data.Rule || null;
245234
if (rules) {
246235
if (!Array.isArray(rules)) {
@@ -266,18 +255,18 @@ proto.getBucketLifecycle = function* (name, region, options) {
266255
};
267256
};
268257

269-
proto.deleteBucketLifecycle = function* (name, region, options) {
258+
proto.deleteBucketLifecycle = function* deleteBucketLifecycle(name, region, options) {
270259
var params = this._bucketRequestParams('DELETE', name, 'lifecycle', options);
271260
params.successStatuses = [204];
272-
var result = yield* this.request(params);
261+
var result = yield this.request(params);
273262
return {
274263
res: result.res
275264
};
276265
};
277266

278267
// referer
279268

280-
proto.putBucketReferer = function* (name, region, allowEmpty, referers, options) {
269+
proto.putBucketReferer = function* putBucketReferer(name, region, allowEmpty, referers, options) {
281270
var params = this._bucketRequestParams('PUT', name, 'referer', options);
282271
var xml = '<?xml version="1.0" encoding="UTF-8"?>\n<RefererConfiguration>\n';
283272
xml += ' <AllowEmptyReferer>' + (allowEmpty ? 'true' : 'false') + '</AllowEmptyReferer>\n';
@@ -294,17 +283,17 @@ proto.putBucketReferer = function* (name, region, allowEmpty, referers, options)
294283
params.content = xml;
295284
params.mime = 'xml';
296285
params.successStatuses = [200];
297-
var result = yield* this.request(params);
286+
var result = yield this.request(params);
298287
return {
299-
res: result.res
288+
res: result.res,
300289
};
301290
};
302291

303-
proto.getBucketReferer = function* (name, region, options) {
292+
proto.getBucketReferer = function* getBucketReferer(name, region, options) {
304293
var params = this._bucketRequestParams('GET', name, 'referer', options);
305294
params.successStatuses = [200];
306295
params.xmlResponse = true;
307-
var result = yield* this.request(params);
296+
var result = yield this.request(params);
308297
var referers = result.data.RefererList.Referer || null;
309298
if (referers) {
310299
if (!Array.isArray(referers)) {
@@ -318,17 +307,18 @@ proto.getBucketReferer = function* (name, region, options) {
318307
};
319308
};
320309

321-
proto.deleteBucketReferer = function* (name, region, options) {
322-
return yield* this.putBucketReferer(name, region, true, null, options);
310+
proto.deleteBucketReferer = function* deleteBucketReferer(name, region, options) {
311+
return yield this.putBucketReferer(name, region, true, null, options);
323312
};
324313

325314
// private apis
326315

327-
proto._bucketRequestParams = function (method, bucket, subres, options) {
316+
proto._bucketRequestParams = function _bucketRequestParams(method, bucket, subres, options) {
328317
return {
329318
method: method,
330319
bucket: bucket,
331320
subres: subres,
332321
timeout: options && options.timeout,
322+
ctx: options && options.ctx,
333323
};
334324
};

0 commit comments

Comments
 (0)