|
1 | | -// Use qiniu sdk to upload files to qiniu. |
2 | | -const qiniu = require('qiniu'); |
| 1 | +const request = require('superagent'); |
3 | 2 | const Promise = require('../promise'); |
| 3 | +const debug = require('debug')('qiniu'); |
4 | 4 |
|
5 | | -module.exports = function upload(uploadInfo, data, file) { |
| 5 | +module.exports = function upload(uploadInfo, data, file, saveOptions = {}) { |
6 | 6 | file.attributes.url = uploadInfo.url; |
7 | 7 | file._bucket = uploadInfo.bucket; |
8 | 8 | file.id = uploadInfo.objectId; |
9 | 9 | // Get the uptoken to upload files to qiniu. |
10 | 10 | const uptoken = uploadInfo.token; |
11 | 11 | return new Promise((resolve, reject) => { |
12 | | - const extra = new qiniu.io.PutExtra(); |
13 | | - if (file.get('mime_type')) { |
14 | | - extra.mimeType = file.get('mime_type'); |
| 12 | + const req = request('POST', 'https://up.qbox.me') |
| 13 | + .field('file', data) |
| 14 | + .field('name', file.attributes.name) |
| 15 | + .field('key', file._qiniu_key) |
| 16 | + .field('token', uptoken); |
| 17 | + if (saveOptions.onprogress) { |
| 18 | + req.on('progress', saveOptions.onprogress); |
15 | 19 | } |
16 | | - const body = new Buffer(data, 'base64'); |
17 | | - qiniu.io.put(uptoken, file._qiniu_key, body, extra, (err) => { |
18 | | - delete file._qiniu_key; |
19 | | - if (!err) { |
20 | | - resolve(file); |
21 | | - } else { |
22 | | - reject(err); |
| 20 | + req.end((err, res) => { |
| 21 | + if (res) { |
| 22 | + debug(res.status, res.body, res.text); |
23 | 23 | } |
| 24 | + if (err) { |
| 25 | + if (res) { |
| 26 | + err.statusCode = res.status; |
| 27 | + err.responseText = res.text; |
| 28 | + err.response = res.body; |
| 29 | + } |
| 30 | + return reject(err); |
| 31 | + } |
| 32 | + resolve(file); |
24 | 33 | }); |
25 | 34 | }); |
26 | 35 | }; |
0 commit comments