首页 > 其他分享 >Capsule - 一个方便且实用的附件服务器

Capsule - 一个方便且实用的附件服务器

时间:2022-10-31 15:22:16浏览次数:87  
标签:文件 Headers next capsuleDispatch Capsule 附件 服务器 httpContext

源码地址 https://github.com/dannyshenl/Capsule

1、入门

欢迎来到《Capsule 胶囊》系列文档
Capsule是功能强大的,支持 .NET 6.0 所有运行平台。
  支持快速搭建一个实用的附件服务器。

2、跨域支持

  代码通过中间件处理来实现跨域支持,并且支持(option)跨域预检。

class CapsuleMiddleware
    {
        private readonly CapsuleDispatch _capsuleDispatch;
        private readonly RequestDelegate _next;
        public CapsuleMiddleware(RequestDelegate next, CapsuleDispatch capsuleDispatch)
        {
            _capsuleDispatch = capsuleDispatch;
            _next = next;
        }

        public async Task Invoke(HttpContext httpContext)
        {
            if (httpContext.Request.Method.Equals(HttpMethod.Options.ToString()))
            {
                httpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                httpContext.Response.Headers.Add("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
                httpContext.Response.Headers.Add("Access-Control-Allow-Headers", "content-type,x-requested-with,authorization,token");
                httpContext.Response.StatusCode = StatusCodes.Status200OK;
                return;
            }
            await _capsuleDispatch.Doing(httpContext);
        }
    }

3、支持多种格式文件上传

胶囊支持 PNG、MP3、PDF、DOCX、XLSX、ZIP等多种格式文件上传。

internal enum FileTypes
    {
        PNG = 0,
        JPG = 1,
        JPEG = 2,
        GIF = 3,
        BMP = 4,
        JFIF = 5,
        MP3 = 6,
        PDF = 7,
        DOC = 8,
        DOCX = 9,
        XLS = 10,
        XLSX = 11,
        ZIP = 12,
    }

4、部署便捷

通过Visual Studio发布到文件夹,然后将发布文件运行在安装有.NET 6.0的服务器即可。

5、上传文件

调用接口 http://{host}:{port}/income, 支持 Post 和 Get请求, multipart/form-data 协议. 工具请求如下图所示。

文件保存在程序运行目录下的income目录下,文件根据日期分目录存储。
  比如今天是2022年10月31日,则文件保存目录为 {程序运行目录}\income\2022\10\31

6、下载文件

调用接口 http://{host}:{port}/open/{上传返回文件唯一编号}, 支持 Post 和 Get请求, multipart/form-data;application/json 等多种协议. 工具请求如下图所示。

7、配置说明

{
  "urls": "http://*:12130",  // 请求地址
  "StoragePath": "",         // 自定义存储目录
  "Quality": 70,             // 图片压缩级别 
  "MaxRequestBodySize": 58   // 设置单次文件最大接收值 58 * 1024 * 1024 字节
}

8、压测报告

待添加

5、总结

  至此,CAS登录整个过程就已完毕,后续章节将讲解dotnet core项目如何接入CAS单点登录。

标签:文件,Headers,next,capsuleDispatch,Capsule,附件,服务器,httpContext
From: https://www.cnblogs.com/advancewithtimes/p/16844413.html

相关文章