tiny-oss 0.5.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +459 -52
- package/UPGRADING.md +151 -0
- package/dist/aws.d.ts +208 -0
- package/dist/azure.d.ts +204 -0
- package/dist/cos.d.ts +208 -0
- package/dist/index.d.ts +209 -0
- package/dist/obs.d.ts +208 -0
- package/dist/protocol.d.ts +271 -0
- package/dist/tiny-oss.aws.es.js +1052 -0
- package/dist/tiny-oss.aws.es.js.map +1 -0
- package/dist/tiny-oss.azure.es.js +882 -0
- package/dist/tiny-oss.azure.es.js.map +1 -0
- package/dist/tiny-oss.cos.es.js +984 -0
- package/dist/tiny-oss.cos.es.js.map +1 -0
- package/dist/tiny-oss.es.js +965 -0
- package/dist/tiny-oss.es.js.map +1 -0
- package/dist/tiny-oss.obs.es.js +1048 -0
- package/dist/tiny-oss.obs.es.js.map +1 -0
- package/dist/tiny-oss.protocol.es.js +588 -0
- package/dist/tiny-oss.protocol.es.js.map +1 -0
- package/package.json +78 -64
- package/dist/tiny-oss.js +0 -1642
- package/dist/tiny-oss.js.map +0 -1
- package/dist/tiny-oss.min.js +0 -35
- package/dist/tiny-oss.min.js.map +0 -1
- package/es/TinyOSS.js +0 -209
- package/es/index.js +0 -1
- package/es/utils/ajax.js +0 -61
- package/es/utils/index.js +0 -188
- package/lib/TinyOSS.js +0 -218
- package/lib/index.js +0 -3
- package/lib/utils/ajax.js +0 -66
- package/lib/utils/index.js +0 -203
- package/types/index.d.ts +0 -89
- package/vendor/digest.js +0 -390
package/es/TinyOSS.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import objectAssign from 'object-assign';
|
|
2
|
-
import ajax from './utils/ajax';
|
|
3
|
-
import { unix, blobToBuffer, assertOptions, getContentMd5, getSignature } from './utils';
|
|
4
|
-
|
|
5
|
-
var TinyOSS =
|
|
6
|
-
/*#__PURE__*/
|
|
7
|
-
function () {
|
|
8
|
-
function TinyOSS(options) {
|
|
9
|
-
if (options === void 0) {
|
|
10
|
-
options = {};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
assertOptions(options);
|
|
14
|
-
this.opts = objectAssign({
|
|
15
|
-
region: 'oss-cn-hangzhou',
|
|
16
|
-
internal: false,
|
|
17
|
-
cname: false,
|
|
18
|
-
secure: false,
|
|
19
|
-
timeout: 60000
|
|
20
|
-
}, options);
|
|
21
|
-
var _this$opts = this.opts,
|
|
22
|
-
bucket = _this$opts.bucket,
|
|
23
|
-
region = _this$opts.region,
|
|
24
|
-
endpoint = _this$opts.endpoint,
|
|
25
|
-
internal = _this$opts.internal;
|
|
26
|
-
this.host = '';
|
|
27
|
-
|
|
28
|
-
if (endpoint) {
|
|
29
|
-
this.host = endpoint;
|
|
30
|
-
} else {
|
|
31
|
-
var host = bucket;
|
|
32
|
-
|
|
33
|
-
if (internal) {
|
|
34
|
-
host += '-internal';
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
host += "." + region + ".aliyuncs.com";
|
|
38
|
-
this.host = host;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var _proto = TinyOSS.prototype;
|
|
43
|
-
|
|
44
|
-
_proto.put = function put(objectName, blob, options) {
|
|
45
|
-
var _this = this;
|
|
46
|
-
|
|
47
|
-
if (options === void 0) {
|
|
48
|
-
options = {};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return new Promise(function (resolve, reject) {
|
|
52
|
-
blobToBuffer(blob).then(function (buf) {
|
|
53
|
-
var _this$opts2 = _this.opts,
|
|
54
|
-
accessKeyId = _this$opts2.accessKeyId,
|
|
55
|
-
accessKeySecret = _this$opts2.accessKeySecret,
|
|
56
|
-
stsToken = _this$opts2.stsToken,
|
|
57
|
-
bucket = _this$opts2.bucket;
|
|
58
|
-
var verb = 'PUT';
|
|
59
|
-
var contentMd5 = getContentMd5(buf);
|
|
60
|
-
var contentType = blob.type;
|
|
61
|
-
var headers = {
|
|
62
|
-
'Content-Md5': contentMd5,
|
|
63
|
-
'Content-Type': contentType,
|
|
64
|
-
'x-oss-date': new Date().toGMTString()
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
if (stsToken) {
|
|
68
|
-
headers['x-oss-security-token'] = stsToken;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
var signature = getSignature({
|
|
72
|
-
verb: verb,
|
|
73
|
-
contentMd5: contentMd5,
|
|
74
|
-
headers: headers,
|
|
75
|
-
bucket: bucket,
|
|
76
|
-
objectName: objectName,
|
|
77
|
-
accessKeyId: accessKeyId,
|
|
78
|
-
accessKeySecret: accessKeySecret
|
|
79
|
-
});
|
|
80
|
-
headers.Authorization = "OSS " + accessKeyId + ":" + signature;
|
|
81
|
-
var protocol = _this.opts.secure ? 'https' : 'http';
|
|
82
|
-
var url = protocol + "://" + _this.host + "/" + objectName;
|
|
83
|
-
return ajax(url, {
|
|
84
|
-
method: verb,
|
|
85
|
-
headers: headers,
|
|
86
|
-
data: blob,
|
|
87
|
-
timeout: _this.opts.timeout,
|
|
88
|
-
onprogress: options.onprogress
|
|
89
|
-
});
|
|
90
|
-
}).then(resolve)["catch"](reject);
|
|
91
|
-
});
|
|
92
|
-
} // https://help.aliyun.com/document_detail/45126.html
|
|
93
|
-
;
|
|
94
|
-
|
|
95
|
-
_proto.putSymlink = function putSymlink(objectName, targetObjectName) {
|
|
96
|
-
var _this$opts3 = this.opts,
|
|
97
|
-
accessKeyId = _this$opts3.accessKeyId,
|
|
98
|
-
accessKeySecret = _this$opts3.accessKeySecret,
|
|
99
|
-
stsToken = _this$opts3.stsToken,
|
|
100
|
-
bucket = _this$opts3.bucket;
|
|
101
|
-
var verb = 'PUT';
|
|
102
|
-
var headers = {
|
|
103
|
-
'x-oss-date': new Date().toGMTString(),
|
|
104
|
-
'x-oss-symlink-target': encodeURI(targetObjectName)
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
if (stsToken) {
|
|
108
|
-
headers['x-oss-security-token'] = stsToken;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var signature = getSignature({
|
|
112
|
-
verb: verb,
|
|
113
|
-
headers: headers,
|
|
114
|
-
bucket: bucket,
|
|
115
|
-
objectName: objectName,
|
|
116
|
-
accessKeyId: accessKeyId,
|
|
117
|
-
accessKeySecret: accessKeySecret,
|
|
118
|
-
subResource: {
|
|
119
|
-
symlink: ''
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
headers.Authorization = "OSS " + accessKeyId + ":" + signature;
|
|
123
|
-
var protocol = this.opts.secure ? 'https' : 'http';
|
|
124
|
-
var url = protocol + "://" + this.host + "/" + objectName + "?symlink";
|
|
125
|
-
return ajax(url, {
|
|
126
|
-
method: verb,
|
|
127
|
-
headers: headers,
|
|
128
|
-
timeout: this.opts.timeout
|
|
129
|
-
});
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
_proto.signatureUrl = function signatureUrl(objectName, options) {
|
|
133
|
-
if (options === void 0) {
|
|
134
|
-
options = {};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
var _options = options,
|
|
138
|
-
_options$expires = _options.expires,
|
|
139
|
-
expires = _options$expires === void 0 ? 1800 : _options$expires,
|
|
140
|
-
method = _options.method,
|
|
141
|
-
process = _options.process,
|
|
142
|
-
response = _options.response;
|
|
143
|
-
var _this$opts4 = this.opts,
|
|
144
|
-
accessKeyId = _this$opts4.accessKeyId,
|
|
145
|
-
accessKeySecret = _this$opts4.accessKeySecret,
|
|
146
|
-
stsToken = _this$opts4.stsToken,
|
|
147
|
-
bucket = _this$opts4.bucket;
|
|
148
|
-
var headers = {};
|
|
149
|
-
var subResource = {};
|
|
150
|
-
|
|
151
|
-
if (process) {
|
|
152
|
-
var processKeyword = 'x-oss-process';
|
|
153
|
-
subResource[processKeyword] = process;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (response) {
|
|
157
|
-
Object.keys(response).forEach(function (k) {
|
|
158
|
-
var key = "response-" + k.toLowerCase();
|
|
159
|
-
subResource[key] = response[k];
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
Object.keys(options).forEach(function (key) {
|
|
164
|
-
var lowerKey = key.toLowerCase();
|
|
165
|
-
var value = options[key];
|
|
166
|
-
|
|
167
|
-
if (lowerKey.indexOf('x-oss-') === 0) {
|
|
168
|
-
headers[lowerKey] = value;
|
|
169
|
-
} else if (lowerKey.indexOf('content-md5') === 0) {
|
|
170
|
-
headers[key] = value;
|
|
171
|
-
} else if (lowerKey.indexOf('content-type') === 0) {
|
|
172
|
-
headers[key] = value;
|
|
173
|
-
} else if (lowerKey !== 'expires' && lowerKey !== 'response' && lowerKey !== 'process' && lowerKey !== 'method') {
|
|
174
|
-
subResource[lowerKey] = value;
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
var securityToken = options['security-token'] || stsToken;
|
|
178
|
-
|
|
179
|
-
if (securityToken) {
|
|
180
|
-
subResource['security-token'] = securityToken;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
var expireUnix = unix() + expires;
|
|
184
|
-
var signature = getSignature({
|
|
185
|
-
type: 'url',
|
|
186
|
-
verb: method || 'GET',
|
|
187
|
-
accessKeyId: accessKeyId,
|
|
188
|
-
accessKeySecret: accessKeySecret,
|
|
189
|
-
bucket: bucket,
|
|
190
|
-
objectName: objectName,
|
|
191
|
-
headers: headers,
|
|
192
|
-
subResource: subResource,
|
|
193
|
-
expires: expireUnix
|
|
194
|
-
});
|
|
195
|
-
var protocol = this.opts.secure ? 'https' : 'http';
|
|
196
|
-
var url = protocol + "://" + this.host + "/" + objectName;
|
|
197
|
-
url += "?OSSAccessKeyId=" + accessKeyId;
|
|
198
|
-
url += "&Expires=" + expireUnix;
|
|
199
|
-
url += "&Signature=" + encodeURIComponent(signature);
|
|
200
|
-
Object.keys(subResource).forEach(function (k) {
|
|
201
|
-
url += "&" + k + "=" + encodeURIComponent(subResource[k]);
|
|
202
|
-
});
|
|
203
|
-
return url;
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
return TinyOSS;
|
|
207
|
-
}();
|
|
208
|
-
|
|
209
|
-
export { TinyOSS as default };
|
package/es/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./TinyOSS')["default"];
|
package/es/utils/ajax.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
export default function ajax(url, options) {
|
|
2
|
-
if (options === void 0) {
|
|
3
|
-
options = {};
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
return new Promise(function (resolve, reject) {
|
|
7
|
-
var _options = options,
|
|
8
|
-
_options$async = _options.async,
|
|
9
|
-
async = _options$async === void 0 ? true : _options$async,
|
|
10
|
-
_options$data = _options.data,
|
|
11
|
-
data = _options$data === void 0 ? null : _options$data,
|
|
12
|
-
_options$headers = _options.headers,
|
|
13
|
-
headers = _options$headers === void 0 ? {} : _options$headers,
|
|
14
|
-
_options$method = _options.method,
|
|
15
|
-
method = _options$method === void 0 ? 'get' : _options$method,
|
|
16
|
-
_options$timeout = _options.timeout,
|
|
17
|
-
timeout = _options$timeout === void 0 ? 0 : _options$timeout,
|
|
18
|
-
onprogress = _options.onprogress;
|
|
19
|
-
var xhr = new XMLHttpRequest();
|
|
20
|
-
var timerId;
|
|
21
|
-
|
|
22
|
-
if (timeout) {
|
|
23
|
-
timerId = setTimeout(function () {
|
|
24
|
-
reject(new Error("the request timeout " + timeout + "ms"));
|
|
25
|
-
}, timeout);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
xhr.onerror = function () {
|
|
29
|
-
reject(new Error('unknown error'));
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
if (xhr.upload) {
|
|
33
|
-
// Note: the progress event must be located before the xhr.open method
|
|
34
|
-
xhr.upload.onprogress = onprogress;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
xhr.onreadystatechange = function () {
|
|
38
|
-
if (xhr.readyState === 4) {
|
|
39
|
-
if (timeout) clearTimeout(timerId);
|
|
40
|
-
|
|
41
|
-
if (xhr.status >= 200 && xhr.status < 300) {
|
|
42
|
-
resolve(xhr.response, xhr);
|
|
43
|
-
} else {
|
|
44
|
-
var err = new Error('the request is error');
|
|
45
|
-
reject(err);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
xhr.open(method, url, async);
|
|
51
|
-
Object.keys(headers).forEach(function (key) {
|
|
52
|
-
xhr.setRequestHeader(key, headers[key]);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
xhr.send(data);
|
|
57
|
-
} catch (err) {
|
|
58
|
-
reject(err);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
package/es/utils/index.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import md5 from 'md5';
|
|
2
|
-
import base64js from 'base64-js';
|
|
3
|
-
import Digest from '../../vendor/digest';
|
|
4
|
-
|
|
5
|
-
function isDate(obj) {
|
|
6
|
-
return obj && Object.prototype.toString.call(obj) === '[object Date]' && obj.toString !== 'Invalid Date';
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function unix(date) {
|
|
10
|
-
var d;
|
|
11
|
-
|
|
12
|
-
if (date) {
|
|
13
|
-
d = new Date(date);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if (!isDate(d)) {
|
|
17
|
-
d = new Date();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return Math.round(d.getTime() / 1000);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function blobToBuffer(blob) {
|
|
24
|
-
return new Promise(function (resolve, reject) {
|
|
25
|
-
var fr = new FileReader();
|
|
26
|
-
|
|
27
|
-
fr.onload = function () {
|
|
28
|
-
var result = new Uint8Array(fr.result);
|
|
29
|
-
resolve(result);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
fr.onerror = function () {
|
|
33
|
-
reject(fr.error);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
fr.readAsArrayBuffer(blob);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function assertOptions(options) {
|
|
41
|
-
var accessKeyId = options.accessKeyId,
|
|
42
|
-
accessKeySecret = options.accessKeySecret,
|
|
43
|
-
bucket = options.bucket,
|
|
44
|
-
endpoint = options.endpoint;
|
|
45
|
-
|
|
46
|
-
if (!accessKeyId) {
|
|
47
|
-
throw new Error('need accessKeyId');
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (!accessKeySecret) {
|
|
51
|
-
throw new Error('need accessKeySecret');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (!bucket && !endpoint) {
|
|
55
|
-
throw new Error('need bucket or endpoint');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function hexToBuffer(hex) {
|
|
60
|
-
var arr = [];
|
|
61
|
-
|
|
62
|
-
for (var i = 0; i < hex.length; i += 2) {
|
|
63
|
-
arr.push(parseInt(hex[i] + hex[i + 1], 16));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return Uint8Array.from(arr);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function getContentMd5(buf) {
|
|
70
|
-
// md5 doesn't work for Uint8Array
|
|
71
|
-
var bytes = Array.prototype.slice.call(buf, 0);
|
|
72
|
-
var md5Buf = hexToBuffer(md5(bytes));
|
|
73
|
-
return base64js.fromByteArray(md5Buf);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function getCanonicalizedOSSHeaders(headers) {
|
|
77
|
-
var result = '';
|
|
78
|
-
var headerNames = Object.keys(headers);
|
|
79
|
-
headerNames = headerNames.map(function (name) {
|
|
80
|
-
return name.toLowerCase();
|
|
81
|
-
});
|
|
82
|
-
headerNames.sort();
|
|
83
|
-
headerNames.forEach(function (name) {
|
|
84
|
-
if (name.indexOf('x-oss-') === 0) {
|
|
85
|
-
result += name + ":" + headers[name] + "\n";
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return result;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function getCanonicalizedResource(bucket, objectName, parameters) {
|
|
92
|
-
if (bucket === void 0) {
|
|
93
|
-
bucket = '';
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (objectName === void 0) {
|
|
97
|
-
objectName = '';
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
var resourcePath = '';
|
|
101
|
-
|
|
102
|
-
if (bucket) {
|
|
103
|
-
resourcePath += "/" + bucket;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (objectName) {
|
|
107
|
-
if (objectName.charAt(0) !== '/') {
|
|
108
|
-
resourcePath += '/';
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
resourcePath += objectName;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
var canonicalizedResource = "" + resourcePath;
|
|
115
|
-
var separatorString = '?';
|
|
116
|
-
|
|
117
|
-
if (parameters) {
|
|
118
|
-
var compareFunc = function compareFunc(entry1, entry2) {
|
|
119
|
-
if (entry1[0] > entry2[0]) {
|
|
120
|
-
return 1;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (entry1[0] < entry2[0]) {
|
|
124
|
-
return -1;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return 0;
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
var processFunc = function processFunc(key) {
|
|
131
|
-
canonicalizedResource += separatorString + key;
|
|
132
|
-
|
|
133
|
-
if (parameters[key]) {
|
|
134
|
-
canonicalizedResource += "=" + parameters[key];
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
separatorString = '&';
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
Object.keys(parameters).sort(compareFunc).forEach(processFunc);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return canonicalizedResource;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
function getSignature(options) {
|
|
147
|
-
if (options === void 0) {
|
|
148
|
-
options = {};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
var _options = options,
|
|
152
|
-
_options$type = _options.type,
|
|
153
|
-
type = _options$type === void 0 ? 'header' : _options$type,
|
|
154
|
-
_options$verb = _options.verb,
|
|
155
|
-
verb = _options$verb === void 0 ? '' : _options$verb,
|
|
156
|
-
_options$contentMd = _options.contentMd5,
|
|
157
|
-
contentMd5 = _options$contentMd === void 0 ? '' : _options$contentMd,
|
|
158
|
-
_options$expires = _options.expires,
|
|
159
|
-
expires = _options$expires === void 0 ? unix() + 3600 : _options$expires,
|
|
160
|
-
bucket = _options.bucket,
|
|
161
|
-
objectName = _options.objectName,
|
|
162
|
-
accessKeySecret = _options.accessKeySecret,
|
|
163
|
-
_options$headers = _options.headers,
|
|
164
|
-
headers = _options$headers === void 0 ? {} : _options$headers,
|
|
165
|
-
subResource = _options.subResource;
|
|
166
|
-
var date = headers['x-oss-date'] || '';
|
|
167
|
-
var contentType = headers['Content-Type'] || '';
|
|
168
|
-
var data = [verb, contentMd5, contentType];
|
|
169
|
-
|
|
170
|
-
if (type === 'header') {
|
|
171
|
-
data.push(date);
|
|
172
|
-
} else {
|
|
173
|
-
data.push(expires);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
var canonicalizedOSSHeaders = getCanonicalizedOSSHeaders(headers);
|
|
177
|
-
var canonicalizedResource = getCanonicalizedResource(bucket, objectName, subResource);
|
|
178
|
-
data.push("" + canonicalizedOSSHeaders + canonicalizedResource);
|
|
179
|
-
var text = data.join('\n');
|
|
180
|
-
var hmac = new Digest.HMAC_SHA1();
|
|
181
|
-
hmac.setKey(accessKeySecret);
|
|
182
|
-
hmac.update(text);
|
|
183
|
-
var hashBuf = new Uint8Array(hmac.finalize());
|
|
184
|
-
var signature = base64js.fromByteArray(hashBuf);
|
|
185
|
-
return signature;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export { unix, blobToBuffer, assertOptions, getContentMd5, getCanonicalizedOSSHeaders, getCanonicalizedResource, getSignature };
|
package/lib/TinyOSS.js
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
9
|
-
|
|
10
|
-
var _ajax = _interopRequireDefault(require("./utils/ajax"));
|
|
11
|
-
|
|
12
|
-
var _utils = require("./utils");
|
|
13
|
-
|
|
14
|
-
var TinyOSS =
|
|
15
|
-
/*#__PURE__*/
|
|
16
|
-
function () {
|
|
17
|
-
function TinyOSS(options) {
|
|
18
|
-
if (options === void 0) {
|
|
19
|
-
options = {};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
(0, _utils.assertOptions)(options);
|
|
23
|
-
this.opts = (0, _objectAssign["default"])({
|
|
24
|
-
region: 'oss-cn-hangzhou',
|
|
25
|
-
internal: false,
|
|
26
|
-
cname: false,
|
|
27
|
-
secure: false,
|
|
28
|
-
timeout: 60000
|
|
29
|
-
}, options);
|
|
30
|
-
var _this$opts = this.opts,
|
|
31
|
-
bucket = _this$opts.bucket,
|
|
32
|
-
region = _this$opts.region,
|
|
33
|
-
endpoint = _this$opts.endpoint,
|
|
34
|
-
internal = _this$opts.internal;
|
|
35
|
-
this.host = '';
|
|
36
|
-
|
|
37
|
-
if (endpoint) {
|
|
38
|
-
this.host = endpoint;
|
|
39
|
-
} else {
|
|
40
|
-
var host = bucket;
|
|
41
|
-
|
|
42
|
-
if (internal) {
|
|
43
|
-
host += '-internal';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
host += "." + region + ".aliyuncs.com";
|
|
47
|
-
this.host = host;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var _proto = TinyOSS.prototype;
|
|
52
|
-
|
|
53
|
-
_proto.put = function put(objectName, blob, options) {
|
|
54
|
-
var _this = this;
|
|
55
|
-
|
|
56
|
-
if (options === void 0) {
|
|
57
|
-
options = {};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return new Promise(function (resolve, reject) {
|
|
61
|
-
(0, _utils.blobToBuffer)(blob).then(function (buf) {
|
|
62
|
-
var _this$opts2 = _this.opts,
|
|
63
|
-
accessKeyId = _this$opts2.accessKeyId,
|
|
64
|
-
accessKeySecret = _this$opts2.accessKeySecret,
|
|
65
|
-
stsToken = _this$opts2.stsToken,
|
|
66
|
-
bucket = _this$opts2.bucket;
|
|
67
|
-
var verb = 'PUT';
|
|
68
|
-
var contentMd5 = (0, _utils.getContentMd5)(buf);
|
|
69
|
-
var contentType = blob.type;
|
|
70
|
-
var headers = {
|
|
71
|
-
'Content-Md5': contentMd5,
|
|
72
|
-
'Content-Type': contentType,
|
|
73
|
-
'x-oss-date': new Date().toGMTString()
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
if (stsToken) {
|
|
77
|
-
headers['x-oss-security-token'] = stsToken;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
var signature = (0, _utils.getSignature)({
|
|
81
|
-
verb: verb,
|
|
82
|
-
contentMd5: contentMd5,
|
|
83
|
-
headers: headers,
|
|
84
|
-
bucket: bucket,
|
|
85
|
-
objectName: objectName,
|
|
86
|
-
accessKeyId: accessKeyId,
|
|
87
|
-
accessKeySecret: accessKeySecret
|
|
88
|
-
});
|
|
89
|
-
headers.Authorization = "OSS " + accessKeyId + ":" + signature;
|
|
90
|
-
var protocol = _this.opts.secure ? 'https' : 'http';
|
|
91
|
-
var url = protocol + "://" + _this.host + "/" + objectName;
|
|
92
|
-
return (0, _ajax["default"])(url, {
|
|
93
|
-
method: verb,
|
|
94
|
-
headers: headers,
|
|
95
|
-
data: blob,
|
|
96
|
-
timeout: _this.opts.timeout,
|
|
97
|
-
onprogress: options.onprogress
|
|
98
|
-
});
|
|
99
|
-
}).then(resolve)["catch"](reject);
|
|
100
|
-
});
|
|
101
|
-
} // https://help.aliyun.com/document_detail/45126.html
|
|
102
|
-
;
|
|
103
|
-
|
|
104
|
-
_proto.putSymlink = function putSymlink(objectName, targetObjectName) {
|
|
105
|
-
var _this$opts3 = this.opts,
|
|
106
|
-
accessKeyId = _this$opts3.accessKeyId,
|
|
107
|
-
accessKeySecret = _this$opts3.accessKeySecret,
|
|
108
|
-
stsToken = _this$opts3.stsToken,
|
|
109
|
-
bucket = _this$opts3.bucket;
|
|
110
|
-
var verb = 'PUT';
|
|
111
|
-
var headers = {
|
|
112
|
-
'x-oss-date': new Date().toGMTString(),
|
|
113
|
-
'x-oss-symlink-target': encodeURI(targetObjectName)
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
if (stsToken) {
|
|
117
|
-
headers['x-oss-security-token'] = stsToken;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
var signature = (0, _utils.getSignature)({
|
|
121
|
-
verb: verb,
|
|
122
|
-
headers: headers,
|
|
123
|
-
bucket: bucket,
|
|
124
|
-
objectName: objectName,
|
|
125
|
-
accessKeyId: accessKeyId,
|
|
126
|
-
accessKeySecret: accessKeySecret,
|
|
127
|
-
subResource: {
|
|
128
|
-
symlink: ''
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
headers.Authorization = "OSS " + accessKeyId + ":" + signature;
|
|
132
|
-
var protocol = this.opts.secure ? 'https' : 'http';
|
|
133
|
-
var url = protocol + "://" + this.host + "/" + objectName + "?symlink";
|
|
134
|
-
return (0, _ajax["default"])(url, {
|
|
135
|
-
method: verb,
|
|
136
|
-
headers: headers,
|
|
137
|
-
timeout: this.opts.timeout
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
_proto.signatureUrl = function signatureUrl(objectName, options) {
|
|
142
|
-
if (options === void 0) {
|
|
143
|
-
options = {};
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
var _options = options,
|
|
147
|
-
_options$expires = _options.expires,
|
|
148
|
-
expires = _options$expires === void 0 ? 1800 : _options$expires,
|
|
149
|
-
method = _options.method,
|
|
150
|
-
process = _options.process,
|
|
151
|
-
response = _options.response;
|
|
152
|
-
var _this$opts4 = this.opts,
|
|
153
|
-
accessKeyId = _this$opts4.accessKeyId,
|
|
154
|
-
accessKeySecret = _this$opts4.accessKeySecret,
|
|
155
|
-
stsToken = _this$opts4.stsToken,
|
|
156
|
-
bucket = _this$opts4.bucket;
|
|
157
|
-
var headers = {};
|
|
158
|
-
var subResource = {};
|
|
159
|
-
|
|
160
|
-
if (process) {
|
|
161
|
-
var processKeyword = 'x-oss-process';
|
|
162
|
-
subResource[processKeyword] = process;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (response) {
|
|
166
|
-
Object.keys(response).forEach(function (k) {
|
|
167
|
-
var key = "response-" + k.toLowerCase();
|
|
168
|
-
subResource[key] = response[k];
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
Object.keys(options).forEach(function (key) {
|
|
173
|
-
var lowerKey = key.toLowerCase();
|
|
174
|
-
var value = options[key];
|
|
175
|
-
|
|
176
|
-
if (lowerKey.indexOf('x-oss-') === 0) {
|
|
177
|
-
headers[lowerKey] = value;
|
|
178
|
-
} else if (lowerKey.indexOf('content-md5') === 0) {
|
|
179
|
-
headers[key] = value;
|
|
180
|
-
} else if (lowerKey.indexOf('content-type') === 0) {
|
|
181
|
-
headers[key] = value;
|
|
182
|
-
} else if (lowerKey !== 'expires' && lowerKey !== 'response' && lowerKey !== 'process' && lowerKey !== 'method') {
|
|
183
|
-
subResource[lowerKey] = value;
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
var securityToken = options['security-token'] || stsToken;
|
|
187
|
-
|
|
188
|
-
if (securityToken) {
|
|
189
|
-
subResource['security-token'] = securityToken;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
var expireUnix = (0, _utils.unix)() + expires;
|
|
193
|
-
var signature = (0, _utils.getSignature)({
|
|
194
|
-
type: 'url',
|
|
195
|
-
verb: method || 'GET',
|
|
196
|
-
accessKeyId: accessKeyId,
|
|
197
|
-
accessKeySecret: accessKeySecret,
|
|
198
|
-
bucket: bucket,
|
|
199
|
-
objectName: objectName,
|
|
200
|
-
headers: headers,
|
|
201
|
-
subResource: subResource,
|
|
202
|
-
expires: expireUnix
|
|
203
|
-
});
|
|
204
|
-
var protocol = this.opts.secure ? 'https' : 'http';
|
|
205
|
-
var url = protocol + "://" + this.host + "/" + objectName;
|
|
206
|
-
url += "?OSSAccessKeyId=" + accessKeyId;
|
|
207
|
-
url += "&Expires=" + expireUnix;
|
|
208
|
-
url += "&Signature=" + encodeURIComponent(signature);
|
|
209
|
-
Object.keys(subResource).forEach(function (k) {
|
|
210
|
-
url += "&" + k + "=" + encodeURIComponent(subResource[k]);
|
|
211
|
-
});
|
|
212
|
-
return url;
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
return TinyOSS;
|
|
216
|
-
}();
|
|
217
|
-
|
|
218
|
-
exports["default"] = TinyOSS;
|
package/lib/index.js
DELETED