Files
FileServices/TestWeb/Startup.cs

118 lines
4.7 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
2020-07-13 14:02:58 +08:00
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace TestWeb
{
public class Startup
{
private readonly IHostEnvironment hostEnvironment;
public Startup(IConfiguration configuration, IHostEnvironment hostEnvironment)
{
Configuration = configuration;
this.hostEnvironment = hostEnvironment;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedMemoryCache();
services.AddAuthentication().AddCookie();
services.AddHttpContextAccessor();
services.AddFileServices(opt =>
{
opt.DefaultScheme = "Document";//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-07-13 14:02:58 +08:00
opt.AddAuthenticationScheme(CookieAuthenticationDefaults.AuthenticationScheme);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
opt.RuleOptions = new Ufangx.FileServices.Models.FileNameRuleOptions()
{
Rule = Ufangx.FileServices.Models.FileNameRule.Custom,//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򣬱<EFBFBD><F2A3ACB1><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><E5B7BD>
Custom = originFileName => string.Format("{0:yyyyMMddHHmmss}_xx_{1}", DateTime.Now, originFileName),
Format = "xxx_{0:yyyyMMddHHmmss}"//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>Rule=FileNameRule.Dateһ<65><D2BB>ʹ<EFBFBD>ã<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD>ǣ<EFBFBD>{0:yyyyMMddHHmmss}
};
})
//<2F><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.AddScheme("pictures", opt =>
{
2020-07-13 14:02:58 +08:00
opt.StoreDirectory = "wwwroot/pictures";//ͼƬ<CDBC><EFBFBD><E6B4A2>Ŀ¼
opt.SupportExtensions = new string[] { ".jpg", ".png" };//֧<>ֵ<EFBFBD><D6B5><EFBFBD>չ<EFBFBD><D5B9>
opt.HandlerType = null;//<2F>ϴ<EFBFBD><CFB4>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>ʵ<EFBFBD><CAB5>IFileHandler<65>ӿ<EFBFBD>
opt.LimitedSize = 1024 * 1024 * 4;//<2F>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ
})
.AddScheme("Document", opt => opt.StoreDirectory = "wwwroot/documents")//<2F>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-07-13 14:02:58 +08:00
//.AddScheme<VideoService>(name:"videos",storeDirectory:"",supportExtensions:new string[] { },LimitedSize:1024*1024*500)//<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.AddLocalServices(o => o.StorageRootDir = hostEnvironment.ContentRootPath);//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
2020-07-13 14:02:58 +08:00
//<2F><>ţ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
//.AddQiniuFileService(opt => {
// opt.AccessKey = "";//
// opt.SecretKey = "";
// opt.BasePath = "";
// opt.Bucket = "";
// opt.Domain = "";
// opt.ChunkUnit = Qiniu.Storage.ChunkUnit.U1024K;
// opt.Zone = "ZoneCnEast";
2020-07-13 14:02:58 +08:00
//});
services.AddCors(options =>
{
options.AddPolicy("cors", builder =>
{
builder.AllowCredentials().AllowAnyMethod().AllowAnyHeader().WithOrigins("http://localhost:9000");
2020-07-13 14:02:58 +08:00
});
});
services.AddControllersWithViews();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCors("cors");
app.UseRouting();
app.UseAuthorization();
//app.Use(next => async ctx =>
//{
// try
// {
// await next(ctx);
// }
// catch (Exception ex) {
// throw ex;
// }
//});
2021-02-15 12:47:16 +08:00
app.UseFileServices("/api");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
2021-02-15 12:47:16 +08:00
pattern: "api/{controller=Home}/{action=Index}/{id?}");
});
}
}
}