1 | const qiniu = require('qiniu')
|
2 | const chalk = require('chalk')
|
3 |
|
4 | module.exports = function(bucket, localFile, fileKey, fn) {
|
5 | let context = this
|
6 | let accessKey = context.accessKey
|
7 | let secretKey = context.secretKey
|
8 | let mac = new qiniu.auth.digest.Mac(accessKey, secretKey)
|
9 | let options = {
|
10 | scope: bucket,
|
11 | returnBody: '{"key":"$(key)","fsize":$(fsize),"bucket":"$(bucket)"}'
|
12 | }
|
13 | let putPolicy = new qiniu.rs.PutPolicy(options)
|
14 | let uploadToken = putPolicy.uploadToken(mac)
|
15 | let config = new qiniu.conf.Config()
|
16 | let formUploader = new qiniu.form_up.FormUploader(config)
|
17 | let putExtra = new qiniu.form_up.PutExtra();
|
18 |
|
19 | config.zone = qiniu.zone.Zone_z0
|
20 | formUploader.putFile(uploadToken, fileKey, localFile, putExtra,
|
21 | function(respErr, respBody, respInfo) {
|
22 | if (respErr) {
|
23 | throw respErr
|
24 | }
|
25 | if (Number(respInfo.statusCode) === 200) {
|
26 | console.log(chalk.green([
|
27 | 'Upload Adrress -- bucket: ' + respBody.bucket,
|
28 | ' -- file: ' + respBody.key + ' -- size:',
|
29 | '(' + (Number(respBody.fsize) / 1000) + 'KB)'
|
30 | ].join(' ')))
|
31 |
|
32 | fn ? fn.apply(context) : ''
|
33 | } else {
|
34 | console.log(chalk.red(fileKey + ' ' + 'upload failure.'))
|
35 | console.log(respBody)
|
36 | }
|
37 | })
|
38 | } |
\ | No newline at end of file |