Blame view

node_modules/needle/examples/upload-image.js 1010 Bytes
7820380e   “wangming”   1
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
  var needle = require('../'),
      path   = require('path');
  
  var image = 'https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png';
  
  function upload(obj, cb) {
    console.log('Uploading image...');
  
    var url = 'http://deviantsart.com';
  
    var opts = {
      timeout:  10000,
      follow:    3,
      multipart: true
    };
  
    var params = {
      file: obj
    }
  
    needle.post(url, params, opts, function(err, resp) {
      if (err || !resp.body.match('url'))
        return cb(err || new Error('No image URL found.'))
  
      cb(null, JSON.parse(resp.body).url)
    })
  }
  
  function download(url, cb) {
    console.log('Getting ' + url);
    needle.get(url, function(err, resp) {
      if (err) throw err;
  
      cb(null, resp.body);
    })
  }
  
  ////////////////////////////////////////
  // ok, now go.
  
  download(image, function(err, buffer) {
    if (err) throw err;
  
    var obj = { buffer: buffer, content_type: 'image/png' };
  
    upload(obj, function(err, url) {
      if (err) throw err;
  
      console.log('Image uploaded to ' + url);
    })
  })