源码地址 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