-
Notifications
You must be signed in to change notification settings - Fork 11
/
qiniu.js
56 lines (47 loc) 路 1.39 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
const path = require('path');
const fs = require('fs-extra');
const qiniu = require('qiniu');
const promise = require('bluebird');
const config = require('../../../config/project');
const {
bucketUrl,
bucket,
accessKey,
secretKey,
} = config;
qiniu.conf.ACCESS_KEY = config.accessKey;
qiniu.conf.SECRET_KEY = config.secretKey;
const mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
const options = {
scope: bucket,
// callbackUrl: 'http://api.example.com/qiniu/upload/callback',
callbackBody: 'key=$(key)&bucket=$(bucket)&imageInfo=$(imageInfo)',
callbackBodyType: 'application/json',
};
const putPolicy = new qiniu.rs.PutPolicy(options);
const uploadToken = putPolicy.uploadToken(mac);
const uploadFile = async (
key,
localFile,
) => {
const config = new qiniu.conf.Config();
config.zone = qiniu.zone.Zone_z2;
config.useHttpsDomain = true;
config.useCdnDomain = true;
const formUploader = new qiniu.form_up.FormUploader(config);
const putExtra = new qiniu.form_up.PutExtra();
// 鏂囦欢涓婁紶
return new promise((resolve, reject) => {
formUploader.putFile(uploadToken, key, localFile, putExtra, (err, res, respInfo) => {
console.log('ewwefwef,', respInfo);
if (err) {
reject(err);
} else {
resolve(Object.assign({}, res, {
url: `http://${bucketUrl}/${res.key}`,
}));
}
});
});
};
module.exports = uploadFile;