var fs = require('fs'); var request = require('request'); var async = require('async'); var apiUrl = 'http://api.flickr.com/services/upload/'; var filenames = fs.readdirSync(path); async.forEach(filenames, function(filename, callback) { // open a file stream on the local image var fileStream = fs.createReadStream(path + filename); // read from the file and write to the HTTP request fileStream.pipe(request.post(apiUrl)); fileStream.on('end', callback); }, function(err) { console.log(err ? err.message : 'Finished!'); });