Currently when adding a grid format data store GeoServer performs basic checks to see check the URL is "valid". With the advent of things like S3 and HDFS there is a desire (see discussions on gs-devel/users) to host grid formats on these services. On the GeoTools side this is actually somewhat straightforward, as ImageInputStream can be adapted to support these protocols; however, the GeoServer UI's concept of what constitutes a valid UI is very narrow:
- Only HTTP, HTTPS and FTP are allowed
- FileExistsValidator tries to open a connection and get the InputStream of the URL
- FileModel ends up converting the URL to a file:// URL, even when it already has a protocol
- ResourcePool converts this to a File
It's worth noting that the REST API skips all these steps, so to me it seems that these should all be optional. In my mind, it's really up to the grid format to determine what is and is not a valid URL for its purposes.