Add support for URL based volumes.

If the API looks ok, I will add it to the other API files.

thanks
--brendan
+1, "defer close" should come immediately after the error check.