1
1
2
-
2
+ const copy = require ( 'copy-to' ) ;
3
3
const callback = require ( './callback' ) ;
4
4
5
5
const proto = exports ;
@@ -13,8 +13,10 @@ const proto = exports;
13
13
*/
14
14
proto . listUploads = function * listUploads ( query , options ) {
15
15
options = options || { } ;
16
- options . subres = 'uploads' ;
17
- const params = this . _objectRequestParams ( 'GET' , '' , options ) ;
16
+ const opt = { } ;
17
+ copy ( options ) . to ( opt ) ;
18
+ opt . subres = 'uploads' ;
19
+ const params = this . _objectRequestParams ( 'GET' , '' , opt ) ;
18
20
params . query = query ;
19
21
params . xmlResponse = true ;
20
22
params . successStatuses = [ 200 ] ;
@@ -53,10 +55,12 @@ proto.listUploads = function* listUploads(query, options) {
53
55
*/
54
56
proto . listParts = function * listParts ( name , uploadId , query , options ) {
55
57
options = options || { } ;
56
- options . subres = {
58
+ const opt = { } ;
59
+ copy ( options ) . to ( opt ) ;
60
+ opt . subres = {
57
61
uploadId,
58
62
} ;
59
- const params = this . _objectRequestParams ( 'GET' , name , options ) ;
63
+ const params = this . _objectRequestParams ( 'GET' , name , opt ) ;
60
64
params . query = query ;
61
65
params . xmlResponse = true ;
62
66
params . successStatuses = [ 200 ] ;
@@ -85,8 +89,10 @@ proto.listParts = function* listParts(name, uploadId, query, options) {
85
89
proto . abortMultipartUpload = function * abortMultipartUpload ( name , uploadId , options ) {
86
90
this . cancel ( ) ;
87
91
options = options || { } ;
88
- options . subres = { uploadId } ;
89
- const params = this . _objectRequestParams ( 'DELETE' , name , options ) ;
92
+ const opt = { } ;
93
+ copy ( options ) . to ( opt ) ;
94
+ opt . subres = { uploadId } ;
95
+ const params = this . _objectRequestParams ( 'DELETE' , name , opt ) ;
90
96
params . successStatuses = [ 204 ] ;
91
97
92
98
const result = yield this . request ( params ) ;
@@ -103,11 +109,13 @@ proto.abortMultipartUpload = function* abortMultipartUpload(name, uploadId, opti
103
109
*/
104
110
proto . initMultipartUpload = function * initMultipartUpload ( name , options ) {
105
111
options = options || { } ;
106
- options . headers = options . headers || { } ;
107
- this . _convertMetaToHeaders ( options . meta , options . headers ) ;
112
+ const opt = { } ;
113
+ copy ( options ) . to ( opt ) ;
114
+ opt . headers = opt . headers || { } ;
115
+ this . _convertMetaToHeaders ( options . meta , opt . headers ) ;
108
116
109
- options . subres = 'uploads' ;
110
- const params = this . _objectRequestParams ( 'POST' , name , options ) ;
117
+ opt . subres = 'uploads' ;
118
+ const params = this . _objectRequestParams ( 'POST' , name , opt ) ;
111
119
params . mime = options . mime ;
112
120
params . xmlResponse = true ;
113
121
params . successStatuses = [ 200 ] ;
@@ -173,14 +181,16 @@ proto.completeMultipartUpload = function* completeMultipartUpload(name, uploadId
173
181
xml += '</CompleteMultipartUpload>' ;
174
182
175
183
options = options || { } ;
176
- options . subres = { uploadId } ;
177
- const params = this . _objectRequestParams ( 'POST' , name , options ) ;
184
+ const opt = { } ;
185
+ copy ( options ) . to ( opt ) ;
186
+ opt . subres = { uploadId } ;
187
+
188
+ const params = this . _objectRequestParams ( 'POST' , name , opt ) ;
189
+ callback . encodeCallback ( params , opt ) ;
178
190
params . mime = 'xml' ;
179
191
params . content = xml ;
180
192
181
- callback . encodeCallback ( options ) ;
182
-
183
- if ( ! ( options . headers && options . headers [ 'x-oss-callback' ] ) ) {
193
+ if ( ! ( params . headers && params . headers [ 'x-oss-callback' ] ) ) {
184
194
params . xmlResponse = true ;
185
195
}
186
196
params . successStatuses = [ 200 ] ;
@@ -193,7 +203,7 @@ proto.completeMultipartUpload = function* completeMultipartUpload(name, uploadId
193
203
etag : result . res . headers . etag ,
194
204
} ;
195
205
196
- if ( options . headers && options . headers [ 'x-oss-callback' ] ) {
206
+ if ( params . headers && params . headers [ 'x-oss-callback' ] ) {
197
207
ret . data = JSON . parse ( result . data . toString ( ) ) ;
198
208
}
199
209
@@ -210,16 +220,18 @@ proto.completeMultipartUpload = function* completeMultipartUpload(name, uploadId
210
220
*/
211
221
proto . _uploadPart = function * _uploadPart ( name , uploadId , partNo , data , options ) {
212
222
options = options || { } ;
213
- options . headers = {
223
+ const opt = { } ;
224
+ copy ( options ) . to ( opt ) ;
225
+ opt . headers = {
214
226
'Content-Length' : data . size ,
215
227
} ;
216
228
217
- options . subres = {
229
+ opt . subres = {
218
230
partNumber : partNo ,
219
231
uploadId,
220
232
} ;
221
- const params = this . _objectRequestParams ( 'PUT' , name , options ) ;
222
- params . mime = options . mime ;
233
+ const params = this . _objectRequestParams ( 'PUT' , name , opt ) ;
234
+ params . mime = opt . mime ;
223
235
params . stream = data . stream ;
224
236
params . successStatuses = [ 200 ] ;
225
237
0 commit comments