Pipe HTTP response from GET request to PUT request with Node.js

I'd like to take a GET response a send it's content-type, length & body as raw data in an HTTP body as a PUT request. I've tried various combinations of request (npm) and node's http.request and the data is always corrupted in the PUT request.

It turns out the problem was a psuedo-proxy I was running one of the requests through was stripping some of the required headers. Alas, using Mikeal's request module you can pipe rather elegantly, even with medium-sized resources like short videos.

app.post '/pipeline', (req, res) ->
  request.get(req.body.url).pipe(request.put(req.body.couchURL)).pipe res