Netnr.FileServer

基于 .NET Core 的简单文件服务器,数据库为SQLite

源码

配置

appsettings.json 为配置文件


正式环境在创建 App 之后需设置 IsDev:false,设置直接生效不用重启服务

文件数据库 和 上传目录 赋予读写权限


运行

在根目录运行:dotnet Netnr.FileServer.dll "http://*:42"

Linux后台运行:nohup dotnet Netnr.FileServer.dll "http://*:42" &

Windows可直接双击Netnr.FileServer.exe,或命令运行Netnr.FileServer.exe "http://*:42" 不能关闭

或者说挂载IIS

访问

服务运行后,访问 {Host}/swagger,可以直接使用所有的接口

授权

首先创建 App 得到 AppId 、AppKey,然后根据 AppId、AppKey 请求得到 Token,

Token 可根据配置设置有效期,默认30分钟有效,缓存20分钟(即20分钟内请求Token返回结果相同)

接口

  • /api/createapp 创建App,非正式环境使用
  • /api/getapplist 获取App列表,非正式环境使用
  • /api/resetall 清空数据库和上传目录,非正式环境使用
  • 在正式环境下一定要修改配置 IsDev:false , 关闭以上接口

  • /api/gettoken 根据AppId、AppKey请求Token
  • /api/upload 上传文件
  • /api/copy 复制文件
  • /api/cover 上传文件覆盖
  • /api/delete 删除文件

上传

默认上传到目录 wwwroot/static//static/可根据配置文件配置

分离

为了更好的维护或数据的安全,需要分离文件数据库和上传的静态目录,

可以用 软链接 的方式来做, Windows的快捷方式

// Windows 软链接
// 命令格式
mklink /d 软链接目录 物理目录
// 示例 在当前创建 static 目录 指向 D盘的 static 目录
mklink /d static D:\static
# Linux 软链接
ln -s 源文件 软链接文件 # 命令格式
# 示例 gs 指向 /netnr/site/static 目录
ln -s /netnr/site/static /netnr/site/www/wwwroot/gs

发布

https://github.com/netnr/Netnr.FileServer/releases

*.rely.zip为环境依赖;其它的为独立包可直接运行

基于 .NET Core 的简单文件服务器的更多相关文章

  1. 一个基于EntityFramework Core的简单数据库访问层,适用于轻量级数据库业务

    这个访问层的代码实际上是园子里某个前辈的,本人只是觉得好使,记录了下来. 本访问层需要通过Nuget安装EntityFramework Core,不过个人认为EF 6同样可以使用. 搭配数据库,最好是 ...

  2. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  3. 一个基于 .NET Core 2.0 开发的简单易用的快速开发框架 - LinFx

    LinFx 一个基于 .NET Core 2.0 开发的简单易用的快速开发框架,遵循领域驱动设计(DDD)规范约束,提供实现事件驱动.事件回溯.响应式等特性的基础设施.让开发者享受到正真意义的面向对象 ...

  4. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端

    一个技术汪的开源梦 —— 目录 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开 ...

  5. 基于.NET Core的Hypertext Application Language(HAL)开发库

    HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式,在API中引入超链接特性,使得API的可发现性(discoverable ...

  6. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始

    0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...

  7. 基于.NET CORE微服务框架 -谈谈surging API网关

    1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中剥析下surging的Api 网关 开源地址:https://git ...

  8. 基于EF Core的Code First模式的DotNetCore快速开发框架

    前言 最近接了几个小单子,因为是小单子,项目规模都比较小,业务相对来说,也比较简单.所以在选择架构的时候,考虑到效率方面的因素,就采取了asp.net+entity framework中的code f ...

  9. .NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件

    记得5年前开始拼命翻读X组件的源码,特别是XCode,但对Newlife.Core 的东西了解很少,最多只是会用用,而且用到的只是九牛一毛.里面好用的东西太多了. 最近一年时间,零零散散又学了很多,也 ...

随机推荐

  1. CSS中越界问题的经典解决方案

    (1)如何解决父元素的第一个子元素的margin-top越界问题 1)为父元素加border-top: 1px;——有副作用 2)为父元素指定padding-top: 1px;——有副作用 3)为父元 ...

  2. Project Euler 62: Cubic permutations

    立方数\(41063625 (345^3)\)的各位数重新排列形成另外两个立方数\(6623104 (384^3)\)和\(66430125 (405^3)\).事实上,\(41063625\)是满足 ...

  3. 并行模式之Master-Worker模式

    并行模式之Master-Worker模式 一).Master-Worker模式 作用: 将一个大任务分解成若干个小任务,分发给多个子线程执行. 注: 将大任务分解成小任务,小任务的实现逻辑要相同. 二 ...

  4. Class文件结构全面解析(下)

    接上回书 书接上一回,分享了Class文件的主要构成,同时也详细分析了魔数.次版本号.主版本号.常量池集合.访问标志的构造,接下来我们就继续学习. 欢迎关注微信公众号:万猫学社,每周一分享Java技术 ...

  5. python容器类型列表的操作

    列表:使用中括号进行表示元素的集合,元素与元素之间使用逗号隔开:列表中的元素可以存放不同的数据类型,但是通常存放相同的数据类型: 1.列表的声明: # 声明一个列表:变量名 = [元素1,元素2] l ...

  6. 【集训Day2】字符串

    字符串(string) [问题描述] 给一个字符串T,问在字符串T 中可以包含最多多少个不重叠的字符串S. 字符串中的每个字符为小写或者大写字母. [输入格式] 第一行输入一个字符串S. 第二行输入一 ...

  7. Pycharm报错连接linux服务器报错:Could not verify `ssh-rsa` host key with fingerprint

    忘记了截图,后来解决了就懒得再去重新制造错误了.大概记得是通过ssh连接linux时,报错 Could not verify `ssh-rsa` host key with fingerprint . ...

  8. Swift - 给UICollectionview设置组背景和圆角

    钟情圆角怎么办 最近由于我们的UI钟情于圆角搞得我很方,各种圆角渐变,于是就有了下面这篇给UICollection组设置圆角和背景色的诞生,不知道在我们平时有没有遇到这样子的一些需求,就是按照每一组给 ...

  9. [书籍]值得纪念的第100篇博客,推荐一些看过的UI书籍

    1. 前言 来到博客园11年,这两年闲下来了才有时间写写博客,不知不觉终于写到第100篇博客了.回顾过去发表的博客,居然大部分都与UI相关.明明我本来从事的是Oracle的相关开发,明明我当初的目标是 ...

  10. Python使用百度地图API根据地名获取相应经纬度

    今天有个需求,要根据地名获取经纬度坐标值. 于是我第一想法:打开百度地图,手动输入地名,获取.显然当地名较少时,可实施.然而,当地名较多时,此方法显然工作量很大. 于是,第二想法:代码获取,请求百度地 ...