Add support for URL based volumes.

If the API looks ok, I will add it to the other API files.

thanks
--brendan
What if the content type and file extension are inconsistent?

How about if content type is unspecified try to derive the mime-type from file suffix, and then just dispatch based on mime-type.