Provides an abstraction layer for interacting with a storage; the storage can be local or any of the supported cloud storage services.