feat: 文传易匿名临时文件传输站初始版本
- 后端 .NET 8 + FreeSql + 阿里云 OSS,支持共享/私密/标签三种文件模式 - 前端 Vue3 + Vite + TDesign,上传/取件/管理三页 - 取件码/二维码/海报合成(含保存二维码为图片) - deploy/ 部署文档与一键 FTP 发布脚本 - appsettings.json 含真实凭据,已 gitignore 不入库
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
using System.Text;
|
||||
using FreeSql;
|
||||
using WenChuanyi.Api.Models;
|
||||
using WenChuanyi.Api.Services;
|
||||
|
||||
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
// CORS:开发期前后端分离宽松策略;生产同目录同源不受影响
|
||||
builder.Services.AddCors(o => o.AddPolicy("any", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));
|
||||
|
||||
// FreeSql + CodeFirst 自动建表
|
||||
var fsql = new FreeSqlBuilder()
|
||||
.UseConnectionString(DataType.MySql, builder.Configuration.GetConnectionString("MySql")!)
|
||||
.UseAutoSyncStructure(true)
|
||||
.UseNoneCommandParameter(true)
|
||||
.Build();
|
||||
|
||||
try
|
||||
{
|
||||
fsql.CodeFirst.SyncStructure<FileItem>();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("[文传易] 数据库初始化失败:" + ex.Message);
|
||||
Console.WriteLine("[文传易] 请检查 appsettings.json 的 ConnectionStrings:MySql");
|
||||
Console.WriteLine("[文传易] (服务器 116.198.221.125:3306,账号 wenchuanyi 需具备建表权限)");
|
||||
throw;
|
||||
}
|
||||
|
||||
builder.Services.AddSingleton<IFreeSql>(fsql);
|
||||
builder.Services.AddSingleton<CodeGeneratorService>();
|
||||
builder.Services.AddSingleton<OssStorageService>();
|
||||
builder.Services.AddHostedService<ExpiredFileCleanerService>();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseCors("any");
|
||||
|
||||
app.UseDefaultFiles();
|
||||
app.UseStaticFiles();
|
||||
|
||||
app.MapControllers();
|
||||
app.MapFallbackToFile("index.html");
|
||||
|
||||
app.Run();
|
||||
Reference in New Issue
Block a user