how and how well does perlbal handle uploads? does it take care of buffering the entire file to disk efficiently, and then pass arguments or headers to the backend describing the file? right now, im using nginx's upload module, but i'd like to use perlbal's X-REPROXY-URL capability to transparently serve files from a cdn.
Perlbal does have buffering of request bodies, but it doesn't do the high-level request body interpretation that the nginx upload module does. The primary motivation for the buffering in Perlbal is to avoid holding open a backend while a slow client uploads its file. Instead, Perlbal sucks up the entire file and only opens the backend request when the entire file has been received.
It is theoretically possible to make a plugin to do what that nginx module does, but as far as I know no-one has written such a thing yet.
Note that X-Reproxy-URL will redirect the backend connection to another host but the client still remains connected to the frontend Perlbal, so you may lose some of the benefits that a CDN usually provides in this setup, such as routing a client to a host that is close to the client on the network, because it will actually be your Perlbal connecting to the CDN rather than the client.