The property sets used by 'file' types and 'block' types are quite different. For instance, remote_host, remote_path, and access_mode apply only to 'file' types. Using separate providers would make it easy (automatic, in fact) to reject properties inappropriate for the type of storage server.