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. nyoj 53-不高兴的小明 (遍历)

    53-不高兴的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:28 submit:89 题目描述:    小明又出问题了.妈妈认为聪明的小明应该 ...

  2. 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  3. JavaWeb02-Servlet

    Servlet概述 生命周期方法: l  void init(ServletConfig):出生之后(1次): l  void service(ServletRequest request, Serv ...

  4. Alibaba Nacos 学习(五):K8S Nacos搭建,使用nfs

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  5. PowerMock学习(五)之Verifying的使用

    前言 Verifying是一个非常强大的测试工具,在mock系列框架中使用广泛,主要用于验证方法是否被调用,下面将举例说明. 场景 模拟这样一个场景,通过Dao查询学生,如果存在更新原来学生,不存在则 ...

  6. 20191107-5 beta week 2/2 Scrum立会报告+燃尽图 04

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9957 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...

  7. go中的关键字-go(下)

    1. goroutine源码分析 1.1 初始化 go程序的启动流程分为四步 call osinit, 这里就是设置了全局变量ncpu = cpu核心数量 call schedinit make &a ...

  8. html基础——表格练习

    最终样式 步骤分析: 标题和报名时间为一块 表格为一块 由图可知,可创建一个七行八列的列表存储数据 首先设置边框的样式,边框 大小,这里是黑色不好看可以设置为天空蓝 可选矿使用<input ty ...

  9. 【论文阅读】A practical algorithm for distributed clustering and outlier detection

    文章提出了一种分布式聚类的算法,这是第一个有理论保障的考虑离群点的分布式聚类算法(文章里自己说的).与之前的算法对比有以下四个优点: 1.耗时短O(max{k,logn}*n), 2.传递信息规模小: ...

  10. Stream系列(一)Filter方法使用

    Filter 是过滤器,也可以当查询方法使用 EmployeeTestCase.java package com.example.demo; import lombok.extern.log4j.Lo ...