-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathqiniu.js
121 lines (105 loc) · 2.67 KB
/
qiniu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
var _ = require('underscore');
var qiniu = exports;
qiniu.version = '6.1.6';
var _configData = require('./config');
qiniu.Bucket = require('./bucket')(_configData);
qiniu.Token = require('./token')(_configData);
qiniu.Asset = require('./asset');
qiniu.Image = require('./image');
qiniu.Batch = require('./batch');
/**
* Global Config
* Example:
* ```
* qiniu.config({
* access_key: '-----',
* secret_key: '-----',
*
* // global token option
* callbackUrl: 'http://images.example.com/upload/callback',
* callbackBody: '{ \
* "foo" : "bar", \
* "name" : $(fname), \
* "size" : $(fsize), \
* "type" : $(mimeType), \
* "hash" : $(etag), \
* "w" : $(imageInfo.width), \
* "h" : $(imageInfo.height), \
* "color" : $(exif.ColorSpace.val) \
* }'
* });
*
* qiniu.config('foo', 'bar');
* qiniu.config('foo');
* ```
* @param {String/Object} key key of config
* @param {Mix} value value
*/
qiniu.config = function(key, value) {
if (arguments.length > 1 && _.isString(key)) {
// set config data normally
qiniu.set(key, value);
} else {
switch (true) {
case _.isString(key):
// Get config data
return qiniu.get(key);
break;
case _.isObject(key):
// Set config data with a object
_.each(key, function(_value, _key) {
qiniu.set(_key, _value);
});
break;
}
}
return this;
};
/**
* Set config data
* @param {String} key key
* @param {Mix} value value
* @return {Object} qiniu object
*/
qiniu.set = function(key, value) {
_configData[key] = value;
return this;
};
/**
* Get config data
* @param {String} key key
* @return {Mix} config value
*/
qiniu.get = function(key) {
return _configData[key];
};
qiniu.bucket = function(bucket) {
return new qiniu.Bucket(bucket);
};
/**
* Return a batch
* @param {[type]} config [description]
* @return {[type]} [description]
*/
qiniu.batch = function(config) {
return new qiniu.Batch(config);
};
var policiesMap = {
'put': qiniu.Token.PutPolicy,
'get': qiniu.Token.GetPolicy,
'access': qiniu.Token.AccessToken
};
/**
* generate a token
* @param {String} type Token's type
* @param {Object} opts options
* @return {String} token
*/
qiniu.genToken = function(type, opts) {
var Policy = policiesMap[type];
if (!Policy) {
return false;
}
var policy = new Policy(opts);
return policy.token();
};