I started writing my implementation of FileSystemMediaSource and at the moment I only need to talk to the IMediaService from Orchard.Media to discover or store file-based media.
It would have been nice to instead provide various IStorageProvider implementations to pull in media from external sources, but for the reasons you've outlined it's not appropriate; besides the fact that you only appear to be allowed a single implementation.
I'm also finding it a bit circular I have to make an additional call to GetPublicUrl every time I get a file detail.
On the other hand, "Storage Provider" isn't really an accurate concept to describe everything we're talking about around "Media Sources"; so maybe the new approach is better anyway. It's inclusive of IStorageProvider but other things as well.
Now, I'm wondering if you're aware of Virtual Path Providers. They're a .NET feature allowing you to hook into the file system at a much lower level than Orchard; although they probably require some Web.config modification to work. But you could look there
for some of your requirements.
I'm really not sure what opinion the devs have about any of this; I'd also like some feedback regarding our media ideas, but I'm assuming that right now they're extremely busy getting ready for MIX'11 and Orchard 1.1. Mercurial has been having a particularly
exciting time of late :) At this stage I've no expectation of them looking at
anything new for another week or two ...