c# - Is there a storage library that abstracts away Azure, S3 and others? -


i developing application supports running in cloud, either amazon or azure. once of components need abstraction around storage apis (blobs , queues). can write abstraction layer, still end huge set of dependencies (all azure , amazon libraries). want component provides pure http access, don't need take external dependencies. such beast exist?

edit

what have done far build interface abstracts away basic operation on blobs. i've ended similar following:

public interface iblobservice {   task<stream> downloadblob(string container, string blob);   ienumerable<string> listblobs(string container);   void putblob(string container, string blob, stream data); } 

i understand different services have different behaviors, both support basic set of crud operations. i'm finding keep adding additional methods change calling behavior. example, addition

void putblob(string container, string blob, stream data); 

i end needing

void putblob(string container, string blob, byte[] data); 

after building nth method in both services, realized must have done already. given both wrappers around respective http interfaces, looking library provides abstraction around these operations. difference between sending byte array , stream 0 far http concerned, each service requires it's own flavor (headers, encoding, hmac, etc).

what want similar odbc provides databases - api provides common set of functionality, while acknowledging there differences in backing platform. hope narrows request down enough.

thanks, erick

the library twentytwenty.storage abstraction storage of blobs. defines interfaces , implemntations exist azure, amazon s3, google cloud storage, , local file system. more information on github of project : twentytwenty.storage

it available .net 4.5 , .net core (netstandard 1.3), , can installed via nuget.


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -