前言

最近项目因为要存储图片和文件,折腾了RavenDB,使用RavenDB的FS系统统一管理图片和文件。

安装

RavenDB 的FS文件系统,需要用到windows的远程差分压缩功能:

安装好之后下载RavenDB的zip包。

解压之后将目录下的Web 文件夹添加到IIS中:

IIS新站点设置完毕之后,接下来需要设置其对应的应用程序池,将版本设置为4.0 的集成模式:

按照官网的要求,还需将 禁用重叠回收设置为True:

设置RavenDB存储文件夹的读写权限,RavenDB的存储文件夹在web.config中:

以上说明RavenDB存储在E:\Raven文件夹中

运行

一切按照完毕,现在在IIS就直接运行,但万事开头难:

以上错误的以上,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的使用都是异步的,这个在使用过程中也需要稍微注意下。

RavenDB FS 安装使用 介绍的更多相关文章

  1. Sikuli图形脚本测试工具安装及介绍(适合小白的测试神器)

    sikuli简单安装以及介绍附图: 一.简单介绍 SikuliX官方网站:https://launchpad.net/sikuli/(官方的最新版本是SikuliX1.1.0更新于2015-10-06 ...

  2. python Scrapy安装和介绍

    python Scrapy安装和介绍 Windows7下安装1.执行easy_install Scrapy Centos6.5下安装 1.库文件安装yum install libxslt-devel ...

  3. Visual Studio 2017正式版离线安装及介绍

    Visual Studio 2017 RTM正式版离线安装及介绍. 首先至官网下载:https://www.visualstudio.com/zh-hans/downloads/ VS 2017 正式 ...

  4. ansible安装 使用 介绍

    1.介绍安装 a.介绍 Ansible:—基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作. b.安装 ...

  5. mongodb可视化工具 studio3t robo3T 下载安装使用介绍

    mongodb可视化工具 studio3t  robo3T 下载安装使用介绍 下载地址: https://studio3t.com/download robo3T

  6. mysql 源代码目录及安装目录介绍

    1.源代码目录介绍: 1.BUILD    BUILD目录是编译.安装脚本目录,绝大部分以compile-开头,其中的SETUP.sh脚本为C和C++编译器设置了优化选项.2.client    cl ...

  7. Linux 下安装 resync 介绍

    Linux 下安装 resync 介绍 这是官网,找到对应版本的下载地址. 这里提供Linux_X64的安装包 wget '' https://download-cdn.resilio.com/sta ...

  8. Badboy安装和介绍

    Badboy安装和介绍 [前言] 欢迎来到我的博客 Badboy是用C++开发的动态应用测试工具,拥有强大的屏幕录制和回放功能,可提供图形结果分析功能,同时Badboy提供了将Web测试脚本直接导出生 ...

  9. Cloudera Manager (centos)安装详细介绍

    文章全部来自:Cloudera Manager (centos)安装详细介绍http://www.aboutyun.com/thread-9190-1-1.html(出处: about云开发) 这里已 ...

随机推荐

  1. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  2. vue2.0+elementUI构建单页面后台管理平台

    git:https://github.com/reg21st/vue2-management-platform 访问:https://reg21st.github.io/vue2-management ...

  3. hibernate持久化框架

    Hibernate是一个优秀的持久化框架 瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态 持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态 持久化: ...

  4. Java设置Excel单元格式

    XSSFWorkbook wb = new XSSFWorkbook(); CellStyle style = wb.createCellStyle(); style.setBorderRight(C ...

  5. 容器 What, Why, How - 每天5分钟玩转容器技术(6)

    学习任何东西都可以按照3W的框架进行,容器技术也是一样,先回答 What.Why 和 How 这三个问题. What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,使应用程序可以在 ...

  6. Atom手动安装插件和模块的解决方案

    最近开始使用Atom编辑器写作.为了预览带LaTeX公式的markdown文档,尝试安装插件markdown-preview-plus,但是总是失败.经过仔细查看错误输出和网上相关问答,发现尽管报错为 ...

  7. 分分钟带你玩转 Web Services【2】CXF

    在实践中一直在使用 JAX-WS 构建 WebService 服务,服务还是非常稳定.高效的. 但还是比较好奇其他的 WebService 开源框架,比如:CXF/Axis2/Spring WS等. ...

  8. AJAX做增删改查详细!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>

    从今天开始,记录学习Java的过程.要学习Java首先得有环境,至于环境的安装我就不说了,百度有很多教程,比如:http://jingyan.baidu.com/article/20095761904 ...

  10. 如何在Linux下快速安装MapTiler

    研究背景:          实际项目用到MapTiler时,为了适应项目不同场景需求,需要测试MapTiler在linux下切图速度,这时就涉及到到MapTiler在Linux下安装的问题,从  M ...