前言

最近项目因为要存储图片和文件,折腾了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. 使用PCA + KNN对MNIST数据集进行手写数字识别

    首先引入需要的包 %matplotlib inline import numpy as np import scipy as sp import pandas as pd import matplot ...

  2. Nginx配置同一个域名同时支持http与https两种方式访问

    Nginx配置同一个域名http与https两种方式都可访问,证书是阿里云上免费申请的 server{listen 80;listen 443 ssl;ssl on;server_name 域名;in ...

  3. node.js前后台交互示例 -- 使用node.js实现用户注册功能

    node.js环境自行搭建,参考菜鸟教程的node.js就可以. 1 通过ajax提交index.html中form表单 register.html文件如下: <!doctype html> ...

  4. 破解Linux系统开机密码

    在我们使用Linux虚拟机的时候,经常会忘记自己设置的开机密码,无奈之下只有重新建一个虚拟机,然而新建往往会浪费掉我们很多时间,这时候,知道如何破解Linux系统密码就显得很重要了. 下面我们使用bo ...

  5. 多个php版本的composer使用

    由于系统环境变量之前同事安装的laravel是5.1...php默认的环境变量是: 不想破话原有环境变量,因为现在新的项目是laravel5.4...所以在用默认composer require安装时 ...

  6. Linux命令之初出茅庐

    此处讲解常用到的参数选项: ls 是列出文件的意思 ls -a ,查看所有文件包含隐藏文件 ls -l ,查看与文件相关的所有属性信息 ls -i ,查看文件的inode信息 ls -h,按照更为容易 ...

  7. 关于jstl.jar引用问题及解决方法

    在前文SSM说到因为从MyEclipse换成了Eclipse.有些架包自动缺失. 造成:"org.apache.jasper.JasperException: This absolute u ...

  8. Hadoop 核心架构

    Hadoop 由许多元素构成.其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件.HDFS(对于本文)的上一层是Ma ...

  9. SectionIndexer 利用系统的控件,制作比较美观的侧栏索引控件

    如上图所示,右侧的索引是系统提供的,具体使用方法,请搜索: SectionIndexer 相关的资料进行开发.

  10. 大数相加a+b

    #include<stdio.h>#include<string.h>#define MAX 1000void Add(char *a,char *b,char *result ...