I think I messaged by point about buckets poorly. All I want to say is that protocol does not need to know about buckets. For programmer consuming this service, all he needs to know is domain and path. Now for service provider, they can invent whatever domain schemes they want. bucket.service.com, bucket.region.service.com or just http://minio/ for simple use-case. And programmer would store that domain in his config file and that's about it.
That's avoiding the question of API to manage buckets. I never needed it and I think that this API should be outside of object storage API scope. Of course there should be some proprietary API on provider side, like they have API for everything. Or, in simple cases, no buckets at all, just some simple binary to serve a directory.