(一)项目背景


Sharepoint是微软的一个产品,很多公司都在使用它,也有很多公司以前使用它,现在可能需要移植到别的平台,也可能只是移植其中的文件存储,比如说移植到微软云,或者亚马逊云存储。SuperRocket.SPSync,就是在类似这样的背景下,应运而生。目前实现的功能主要是同步sharepoint上的文件存储到自己的服务器,同时支持同步到亚马逊云存储。计划后期可以加入别的存储,比如说Azure云存储。

SuperRocket.SPSync 基于asp.net著名的项目- abp 和 SuperRocket.OrchardSuperRocket.Orchard 也是一个基于abp的项目模板,支持asp.net mvc开发和asp.net webapi开发.

(二)架构图如下


(三)序列图如下


(四)如何运行?


  1. 您需要安装visual studio 2015 update 3 或者 visual studio 2017;

  2. 下载代码或者克隆代码到本地, 地址 : https://github.com/AccentureRapid/SuperRocket.SPSync.git ;

  3. 在 visual studio 中打开项目解决方案文件, 如图:

  1. 在sql server 中创建数据库,并切修改在web.config中修改连接字符串,这个数据库会用来存储用户信息,租户信息和 Hangfire jobs的信息, 连接字符串如下图:

  1. 打开visual studio的 Package Manager Console, 并且确认 "SuperRocket.Orchard.EntityFramework" 作为默认项目被选中. 在visual studio的解决方案管理器里, 确认 "SuperRocket.Orchard.Web" 被设置成起始项目. 然后运行命令 "update-database -verbose" 执行数据库的初始化工作.

  1. 在App_Data文件夹里设置 sharepoint 的配置文件,如图:

  1. 如果您想要把Sharepoint的文档库同步到AWS S3. 需要修改web.config的亚马逊云的配置节点, 如图:

  1. 在IIS中创建一个站点,并且设置目录到您的站点. 在浏览器中打开: http://localhost:8083/ ,默认用户是 admin, 密码 123qwe. 成功运行您可以看到下图:

  1. 在浏览器中打开 : http://localhost:8083/hangfire ,如下图,为Hangfire的job管理监控页面。

  1. 使用 Postman 去触发同步文档的任务,地址 :http://localhost:8083/api/services/app/sharePointSyncService/EnqueueSharepointSyncJob 就是如此简单! 您可以在hangfire的管理界面管理和监控任务。

有用的链接:

联系我:

Contributors

[开源] 基于ABP,Hangfire的开源Sharepoint文件同步程序----SuperRocket.SPSync的更多相关文章

  1. 基于ABP框架的SignalR,使用Winform程序进行功能测试

    在ABP框架里面,默认会带入SignalR消息处理技术,它同时也是ABP框架里面实时消息处理.事件/通知处理的一个实现方式,SignalR消息处理本身就是一个实时很好的处理方案,我在之前在我的Winf ...

  2. python基于并发与socket实现远程文件传输程序

    FTP程序 Client: * bin/start.py 程序入口 * conf/配置文件存放 * core/ * auth.py 登陆,注册以及上传下载查看当前文件夹下文件以及删除功能存放 * cl ...

  3. 文件同步程序,Python和C写的DLL

    #coding:utf-8 from ctypes import * from FileCopy import * def GetFilePathList(FilePath): dll = CDLL( ...

  4. gofs使用教程-基于golang的开源跨平台文件同步工具

    概述 gofs是基于golang开发的一款开箱即用的跨平台文件同步工具,开源地址如下:https://github.com/no-src/gofs,欢迎点个Star或者提交Issue和PR,共同进步! ...

  5. [开源]基于ffmpeg和libvlc的视频剪辑、播放器

    [开源]基于ffmpeg和libvlc的视频剪辑.播放器 以前研究的时候,写过一个简单的基于VLC的视频播放器.后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放.视 ...

  6. 分享一个基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具

    soar-web 基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具,支持 soar 配置的添加.修改.复制,多配置切换,配置的导出.导入与导入功能. 环境需求 python3.xF ...

  7. 基于Java的四大开源测试工具

    摘要:成功的应用程序离不开测试人员和QA团队反复地测试,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况. %R[)vA t]N0 测试是应用程 ...

  8. 开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等

    开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等 C++开发网络通信程序时用asio是个不错的选择 ...

  9. TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具

    怀着鸡动的心情跟大家介绍一款国产开源运维软件TriAquae,轻松帮你搞定大部分运维工作!TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具,可以允许用户通过一台控制端管理上千 ...

随机推荐

  1. js 获取元素内部文本

    调用textContent属性即可. 如: var label=document.getElementById('juan-select').getElementsByClassName('radio ...

  2. java如何停止一个运行的线程?

    关于线程的一点心得 //首先导入需要的包 improt java.util.Timer;import java.io.File;import java.util.TimerTask; //首先需要创建 ...

  3. 老李分享: 并行计算基础&编程模型与工具 1

    老李分享: 并行计算基础&编程模型与工具   在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如 ...

  4. XML查询

    XPath是XML的查询语言,其内容相当复杂.可以查阅www.w3.org/TR/xpath. 下面以一个实例简单了解一线XPath的查询方法: public partial class Form1 ...

  5. Nginx VS Apache

    作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率 Nginx 静态处理性能比 Apache 高 3倍以上 最核心的区别在于apache是同步多进 ...

  6. 插入排序的优化非希尔【不靠谱地讲可以优化到O(nlogn)】 USACO 丑数

    首先我们先介绍一下普通的插排,就是我们现在一般写的那种,效率是O(n^2)的. 普通的插排基于的思想就是找位置,然后插入进去,其他在它后面的元素全部后移,下面是普通插排的代码: #include< ...

  7. getline函数(精华版)

    在我的印象中,getline函数经常出现在自己的视野里,模糊地记得它经常用来读取字符串   .但是又对它的参数不是很了解,今天又用到了getline函数,现在来细细地总结一下:   首先要明白设计ge ...

  8. java小题:福尔摩斯的约会

    原题地址:https://www.nowcoder.com/pat/6/problem/4040 防止广告嫌疑,原题为: 题目描述 大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485 ...

  9. 在IntelliJ IDEA中添加repository模板

    可以用于快速新建一个repository类,减少开发时间 在IntelliJ IDEA settings设置中(ctrl+alt+s)--Editor--File and Code Templates ...

  10. Redis编码问题

    最近搞redis存储对象出了点问题,大概说一下背景,项目原有的东东以前存的是redis,存储的直接是对象模型,没有问题,这里存储对象存储任何信息事都没有问题的.但是现在调整为存储序列化的json字符串 ...