Simple .Net file storage
Install-Package FileStore
Install-Package FileStore.Persistance.EntityFramework
Install-Package FileStore.Persistance.FileSystem
- store files
- load files from store
- controll files versions
Versioned file store:
varfileStoreBuilder=FileStoreBuilder.Config(cfg =>{cfg.UseFileSystem("myDirectory\\fileStoreDirectory");});varstore=fileStoreBuilder.BuildVersioned();varid=Guid.NewGuid();store.StoreFile(id,newStoreFile{Data=newbyte[]{1,2,3},Extension="txt"});store.StoreFile(id,newStoreFile{Data=newbyte[]{1,2,3,4,5,6},Extension="txt"});varlatestFileVersion=store.OpenFile(id);varfirstVersion=store.OpenFile(id,0);Unversioned file store:
varstore=fileStoreBuilder.BuildUnversioned();With this setup You saves and opens files at single version - there is no
store.OpenFile(Guid, int)
Using Entity Framework:
varfileStoreBuilder=FileStoreBuilder.Config(cfg =>{cfg.UseEntityFramework("some.connection.string.name");cfg.InitializeDatabase();});Registering in some container (Autofac in this example):
varcontainerBuilder=newContainerBuilder();varfileStoreBuilder=FileStoreBuilder.Config(cfg =>{cfg.UseFileSystem("C:\\fileStore");});containerBuilder.Register(c =>fileStoreBuilder.BuildVersioned());varcontainer=containerBuilder.Build();varstore=container.Resolve<IFileStore>();Creating new Persistance engine is very simple - just implement IPersistance and provide configuration extensions.
Maybe You have other idea - do no hesitate - please send me some pull request :)