RavenDB FS 安裝使用 介紹

前言

最近項目由於要存儲圖片和文件,折騰了RavenDB,使用RavenDB的FS系通通一管理圖片和文件。web

安裝

RavenDB 的FS文件系統,須要用到windows的遠程差分壓縮功能:windows

 

安裝好以後下載RavenDB的zip包。api

解壓以後將目錄下的Web 文件夾添加到IIS中:安全

 

 IIS新站點設置完畢以後,接下來須要設置其對應的應用程序池,將版本設置爲4.0 的集成模式:session

按照官網的要求,還需將 禁用重疊回收設置爲True:app

 

設置RavenDB存儲文件夾的讀寫權限,RavenDB的存儲文件夾在web.config中:異步

以上說明RavenDB存儲在E:\Raven文件夾中spa

 

運行

一切按照完畢,如今在IIS就直接運行,但萬事開頭難:.net

以上錯誤的以上,Raven.Web.Startp和系統的Startup衝突了,在appseting中咱們要顯示的設置那個class:線程

<add key="owin:AppStartup" value="Raven.Web.Startup, Raven.Web, Version=3.5.4.0, Culture=neutral, PublicKeyToken=37f41c7f99471593" />

如今設置都完畢,如下就是我RavenDB的 studio界面,由於我已經添加了一些文件,界面和各位的不太一致:

代碼上傳下載文件

一切準備就緒,如今使用代碼來上傳文件試試,首先在nuget上獲取:

根據官網的文檔,IFilesStore 爲具體操做的入口,並且是線程安全的,因此建議一個應用程序使用一個IFilesStore,代碼以下:

public class FilesStoreHolder
{
    private static readonly Lazy<IFilesStore> store = new Lazy<IFilesStore>(CreateStore);

    public static IFilesStore Store
    {
        get { return store.Value; }
    }

    private static IFilesStore CreateStore()
    {
        IFilesStore fsStore = new FilesStore()
        {
            Url = "http://127.0.0.1:8090",
            DefaultFileSystem = "NorthwindFS"
        }.Initialize();

        return fsStore;
    }
}

 而後上傳用的接口爲IAsyncFilesSession,經過其方法RegisterUpload就能夠進行上傳操做,具體代碼以下:

IFilesStore store = FilesStoreHolder.Store;

using (var session = store.OpenAsyncSession(
    new OpenFilesSessionOptions()
    {
        FileSystem = "NorthwindFS"
    }))
{
    session.RegisterUpload("世界之窗.jpg", File.OpenRead(@"D:\DSCN6900.JPG"));
    await session.SaveChangesAsync();
}

 下載的代碼經過方法DownloadAsync,其返回是Stream:

using (IAsyncFilesSession session = store.OpenAsyncSession())
{
    using (Stream content = await session.DownloadAsync("世界之窗.jpg"))
    {
        content.CopyTo(new FileStream("aaa.jpg", FileMode.Create));
    }

}

 總結

RavenDB的安裝配置還算是簡單,但仍是有些坑須要注意,其api的使用都是異步的,這個在使用過程當中也須要稍微注意下。

相關文章
相關標籤/搜索