1
+ var fs = require ( 'fs' ) ;
2
+ var path = require ( 'path' ) ;
3
+ var COS = require ( '../index' ) ;
4
+ var util = require ( './util' ) ;
5
+ var config = require ( './config' ) ;
6
+
7
+ var cos = new COS ( config ) ;
8
+
9
+ function getService ( ) {
10
+ cos . getService ( { } , function ( err , data ) {
11
+ return console . log ( err || data ) ;
12
+ } ) ;
13
+ }
14
+
15
+ function putObject ( ) {
16
+ // 创建测试文件
17
+ var filename = '1mb.zip' ;
18
+ util . createFile ( path . resolve ( __dirname , filename ) , 1024 * 1024 , function ( err ) {
19
+ // 调用方法
20
+ var filepath = path . resolve ( __dirname , filename ) ;
21
+ cos . putObject ( {
22
+ Bucket : 'test' , /* 必须 */
23
+ Region : 'cn-south' ,
24
+ Key : filename , /* 必须 */
25
+ Body : fs . createReadStream ( filepath ) , /* 必须 */
26
+ ContentLength : fs . statSync ( filepath ) . size , /* 必须 */
27
+ } , function ( err , data ) {
28
+ if ( err ) {
29
+ console . log ( err ) ;
30
+ } else {
31
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
32
+ }
33
+ } ) ;
34
+ } ) ;
35
+ }
36
+
37
+ function deleteObject ( ) {
38
+ cos . deleteObject ( {
39
+ Bucket : 'test' ,
40
+ Region : 'cn-south' ,
41
+ Key : '1mb.zip'
42
+ } , function ( err , data ) {
43
+ if ( err ) {
44
+ return console . log ( err ) ;
45
+ }
46
+
47
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
48
+ } ) ;
49
+ }
50
+
51
+ function getBucket ( ) {
52
+ cos . getBucket ( {
53
+ Bucket : 'test' ,
54
+ Region : 'cn-south'
55
+ } , function ( err , data ) {
56
+ if ( err ) {
57
+ return console . log ( err ) ;
58
+ }
59
+
60
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
61
+ } ) ;
62
+ }
63
+
64
+ function headBucket ( ) {
65
+ cos . headBucket ( {
66
+ Bucket : 'test' ,
67
+ Region : 'cn-south'
68
+ } , function ( err , data ) {
69
+ if ( err ) {
70
+ return console . log ( err ) ;
71
+ }
72
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
73
+ } ) ;
74
+ }
75
+
76
+ function putBucket ( ) {
77
+ cos . putBucket ( {
78
+ Bucket : 'test-new' ,
79
+ Region : 'cn-south'
80
+ } , function ( err , data ) {
81
+ if ( err ) {
82
+ return console . log ( err ) ;
83
+ }
84
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
85
+ } ) ;
86
+ }
87
+
88
+ function deleteBucket ( ) {
89
+ cos . deleteBucket ( {
90
+ Bucket : 'test-new' ,
91
+ Region : 'cn-south'
92
+ } , function ( err , data ) {
93
+ if ( err ) {
94
+ return console . log ( err ) ;
95
+ }
96
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
97
+ } ) ;
98
+ }
99
+
100
+ function getBucketACL ( ) {
101
+ cos . getBucketACL ( {
102
+ Bucket : 'test' ,
103
+ Region : 'cn-south'
104
+ } , function ( err , data ) {
105
+ if ( err ) {
106
+ return console . log ( err ) ;
107
+ }
108
+
109
+ console . log ( data . AccessControlList . Grant ) ;
110
+ } ) ;
111
+ }
112
+
113
+ function putBucketACL ( ) {
114
+ // 该接口存在问题,不可以设置 ACL 为 'public-read' 也不能设置 GrandWrite 等
115
+ cos . putBucketACL ( {
116
+ Bucket : 'test' ,
117
+ Region : 'cn-south' ,
118
+ //GrantWrite : 'uin="1111", uin="2222"',
119
+ ACL : 'public-read' ,
120
+ // ACL: 'private'
121
+ } , function ( err , data ) {
122
+ if ( err ) {
123
+ return console . log ( err ) ;
124
+ }
125
+
126
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
127
+ } ) ;
128
+ }
129
+
130
+ function getBucketCORS ( ) {
131
+ cos . getBucketCORS ( {
132
+ Bucket : 'test' ,
133
+ Region : 'cn-south'
134
+ } , function ( err , data ) {
135
+ if ( err ) {
136
+ return console . log ( err ) ;
137
+ }
138
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
139
+ } ) ;
140
+ }
141
+
142
+ function putBucketCORS ( ) {
143
+ // 该接口存在问题,Content-MD5 错误
144
+ cos . putBucketCORS ( {
145
+ Bucket : 'test' ,
146
+ Region : 'cn-south' ,
147
+ CORSRules : [ {
148
+ "AllowedOrigin" : [ "*" ] ,
149
+ "AllowedMethod" : [ "PUT" , "GET" , "POST" , "DELETE" , "HEAD" ] ,
150
+ "AllowedHeader" : [ "origin" , "accept" , "content-type" , "authorzation" ] ,
151
+ "ExposeHeader" : [ "ETag" ] ,
152
+ "MaxAgeSeconds" : "300"
153
+ } ]
154
+ } , function ( err , data ) {
155
+ if ( err ) {
156
+ return console . log ( err ) ;
157
+ }
158
+
159
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
160
+ } ) ;
161
+ }
162
+
163
+ function getBucketLocation ( ) {
164
+ cos . getBucketLocation ( {
165
+ Bucket : 'test' ,
166
+ Region : 'cn-south'
167
+ } , function ( err , data ) {
168
+ if ( err ) {
169
+ return console . log ( err ) ;
170
+ }
171
+ } ) ;
172
+ }
173
+
174
+ function getObject ( ) {
175
+ cos . getObject ( {
176
+ Bucket : 'test' ,
177
+ Region : 'cn-south' ,
178
+ Key : '1mb.zip' ,
179
+ Output : fs . createWriteStream ( path . resolve ( __dirname , '1mb.out.zip' ) )
180
+ } , function ( err , data ) {
181
+ if ( err ) {
182
+ return console . log ( err ) ;
183
+ }
184
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
185
+ } ) ;
186
+ }
187
+
188
+ function headObject ( ) {
189
+ cos . headObject ( {
190
+ Bucket : 'test' ,
191
+ Region : 'cn-south' ,
192
+ Key : '1mb.zip'
193
+ } , function ( err , data ) {
194
+ if ( err ) {
195
+ return console . log ( err ) ;
196
+ }
197
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
198
+ } ) ;
199
+ }
200
+
201
+ var util = require ( 'util' ) ;
202
+ var inspect = require ( 'eyes' ) . inspector ( { maxLength : false } )
203
+ function getObjectACL ( ) {
204
+ cos . getObjectACL ( {
205
+ Bucket : 'test' ,
206
+ Region : 'cn-south' ,
207
+ Key : '1mb.zip'
208
+ } , function ( err , data ) {
209
+ if ( err ) {
210
+ return console . log ( err ) ;
211
+ }
212
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
213
+ } ) ;
214
+ }
215
+
216
+ function sliceUploadFile ( ) {
217
+ // 创建测试文件
218
+ var filename = '3mb.zip' ;
219
+ util . createFile ( path . resolve ( __dirname , filename ) , 1024 * 1024 * 3 , function ( err ) {
220
+ // 调用方法
221
+ cos . sliceUploadFile ( {
222
+ Bucket : 'test' , /* 必须 */
223
+ Region : 'cn-south' ,
224
+ Key : 'p.exe' , /* 必须 */
225
+ FilePath : filepath , /* 必须 */
226
+ SliceSize : 1024 * 1024 , //1MB /* 非必须 */
227
+ AsyncLimit : 5 , /* 非必须 */
228
+ onProgress : function ( progressData , percent ) {
229
+ console . log ( progressData , percent ) ;
230
+ } ,
231
+ onHashProgress : function ( hashProgress , percent ) {
232
+ console . log ( hashProgress , percent ) ;
233
+ }
234
+ } , function ( err , data ) {
235
+ if ( err ) {
236
+ console . log ( err ) ;
237
+ } else {
238
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
239
+ }
240
+ } ) ;
241
+ } ) ;
242
+ }
243
+
244
+ function putBucketPolicy ( ) {
245
+ cos . putBucketPolicy ( {
246
+ Policy : {
247
+ "version" : "2.0" ,
248
+ "principal" : { "qcs" : [ "qcs::cam::uin/909600000:uin/909600000" ] } , // 这里的 909600000 是 QQ 号
249
+ "statement" : [
250
+ {
251
+ "effect" : "allow" ,
252
+ "action" : [
253
+ "name/cos:GetBucket" ,
254
+ "name/cos:PutObject" ,
255
+ "name/cos:PostObject" ,
256
+ "name/cos:PutObjectCopy" ,
257
+ "name/cos:InitiateMultipartUpload" ,
258
+ "name/cos:UploadPart" ,
259
+ "name/cos:UploadPartCopy" ,
260
+ "name/cos:CompleteMultipartUpload" ,
261
+ "name/cos:AbortMultipartUpload" ,
262
+ "name/cos:AppendObject"
263
+ ] ,
264
+ "resource" : [ "qcs::cos:cn-south:uid/1250000000:test-1250000000.cn-south.myqcloud.com//1250000000/test/*" ] // 1250000000 是 appid
265
+ }
266
+ ]
267
+ } ,
268
+ Bucket : 'test' ,
269
+ Region : 'cn-south'
270
+ } , function ( err , data ) {
271
+ if ( err ) {
272
+ console . log ( err ) ;
273
+ } else {
274
+ getBucketPolicy ( ) ;
275
+ }
276
+ } ) ;
277
+ }
278
+
279
+ function getBucketPolicy ( ) {
280
+ cos . getBucketPolicy ( {
281
+ Bucket : 'test' ,
282
+ Region : 'cn-south'
283
+ } , function ( err , data ) {
284
+ if ( err ) {
285
+ console . log ( err ) ;
286
+ } else {
287
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
288
+ }
289
+ } ) ;
290
+ }
291
+
292
+ function putObjectCopy ( ) {
293
+ cos . putObjectCopy ( {
294
+ Bucket : 'test' ,
295
+ Region : 'cn-south' ,
296
+ Key : '1mb.copy.zip' ,
297
+ CopySource : 'test-1251902136.cn-south.myqcloud.com/1mb.zip' ,
298
+ } , function ( err , data ) {
299
+ if ( err ) {
300
+ console . log ( err ) ;
301
+ } else {
302
+ console . log ( JSON . stringify ( data , null , ' ' ) ) ;
303
+ }
304
+ } ) ;
305
+ }
306
+
307
+ getService ( ) ;
308
+ // getBucket();
309
+ // headBucket();
310
+ // putBucket();
311
+ // deleteBucket();
312
+ // getBucketACL();
313
+ // putBucketACL();
314
+ // getBucketCORS();
315
+ // putBucketCORS();
316
+ // putBucketPolicy();
317
+ // getBucketPolicy();
318
+ // getBucketLocation();
319
+ // getObject();
320
+ // putObject();
321
+ // putObjectCopy();
322
+ // headObject();
323
+ // deleteObject();
324
+ // getObjectACL();
325
+ // sliceUploadFile();
0 commit comments