This commit is contained in:
itcsx committed 2026-09-13 19:01:48 +08:00
1 parent 7f5bf3c68d
commit 816209fc35
37 files changed
+3236 -4515

No files matched your search

@@ -2,7 +2,9 @@
using CloudBuilder.Core.DependencyInjection.Form;
using CloudBuilder.Core.DependencyInjection.Policy;
using CloudBuilder.Core.DependencyInjection.Request;
using CloudBuilder.Core.Extensions;
using CloudBuilder.Core.Policy;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
@@ -85,7 +87,7 @@ namespace CloudBuilder.Security.Policy
{
if (transcodeIndc == YesNoPolicy.YES)
{
var backup = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var backup = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(backup, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
@@ -93,7 +95,7 @@ namespace CloudBuilder.Security.Policy
}
else
{
var scale = (service.Configuration[ServiceSettingsPolicy.DmsFileScaleDirectory] ?? "").Replace(phy ?? "", "");
var scale = (ServiceSettingsPolicy.GetDmsFileScaleDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(scale, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + orderKey;
@@ -101,7 +103,7 @@ namespace CloudBuilder.Security.Policy
}
else if (GetType(orderKey!) == AUDIO)
{
var backup = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var backup = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(backup, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + orderKey;
@@ -110,14 +112,14 @@ namespace CloudBuilder.Security.Policy
{
if (transcodeIndc == YesNoPolicy.YES)
{
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var upload = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(upload, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + ".png";
}
else
{
var backup = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var backup = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(backup, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + orderKey;
@@ -125,7 +127,7 @@ namespace CloudBuilder.Security.Policy
}
else if (GetType(orderKey!) == LYRIC)
{
var upload = service.Configuration[ServiceSettingsPolicy.DmsFileUploadDirectory].Replace(phy, "");
var upload = ServiceSettingsPolicy.GetDmsFileBackupDirectory(service).Replace(phy, "");
var filePathRel = Path.Combine(upload, createdBy, fileExtension.Replace(".", ""), "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + orderKey;
@@ -136,7 +138,7 @@ namespace CloudBuilder.Security.Policy
{
var webRootPath = service.Configuration[ServiceSettingsPolicy.RequestPath] ?? "";
var phy = service.Configuration[ServiceSettingsPolicy.PhysicalFileDirectory] ?? "";
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
var upload = (ServiceSettingsPolicy.GetDmsFileBackupDirectory(service) ?? "").Replace(phy ?? "", "");
var fileExtension = Path.GetExtension(orderKey);//获取文件格式,拓展名
// 使用Path.Combine拼接路径,再将系统分隔符转为URL标准正斜杠
@@ -148,10 +150,30 @@ namespace CloudBuilder.Security.Policy
public static string PackFilePath(IApplicationService service, string createdBy, string orderKey)
{
var backup = service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory]!;
var backup = ServiceSettingsPolicy.GetDmsFileBackupDirectory(service)!;
var fileExtension = Path.GetExtension(orderKey).Replace(".", "");//获取文件格式,拓展名
return Path.Combine(backup, createdBy, fileExtension, orderKey);
}
/// <summary>
/// 拼装头像访问地址。分片上传合并后的文件在备份目录:{BackupFileDirectory}/{folderName}/{扩展名}/{文件名}
/// </summary>
public static string PackAvatarUrl(IApplicationService service, string folderName, string fileName)
{
if (string.IsNullOrEmpty(fileName)) return null;
var webRootPath = service.Configuration[ServiceSettingsPolicy.RequestPath] ?? "";
var phy = service.Configuration[ServiceSettingsPolicy.PhysicalFileDirectory] ?? "";
var fileExtension = (Path.GetExtension(fileName) ?? "").Replace(".", "").ToLower();//获取文件格式,拓展名
if (string.IsNullOrEmpty(fileExtension)) fileExtension = "ext";
var backup = (ServiceSettingsPolicy.GetBackupFileDirectory(service) ?? "").Replace(phy ?? "", "");
var filePathRel = Path.Combine(backup, folderName ?? "", fileExtension, "");
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
return service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + fileName;
}
}
}
@@ -1,4 +1,5 @@
using System;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -9,10 +10,13 @@ namespace CloudBuilder.Security.Policy
{
public class ServiceSettingsPolicy
{
public const string DmsFileScaleDirectory = "FileServiceSettings:DmsFileScaleDirectory";
public const string PhysicalFileDirectory = "FileServiceSettings:PhysicalFileDirectory";
public const string DmsFileUploadDirectory = "FileServiceSettings:DmsFileUploadDirectory";
public const string DmsFileBackupDirectory = "FileServiceSettings:DmsFileBackupDirectory";
public const string ScaleFileDirectory = "FileServiceSettings:ScaleFileDirectory";
public const string BackupFileDirectory = "FileServiceSettings:BackupFileDirectory";
public const string UploadFileDirectory = "FileServiceSettings:UploadFileDirectory";
public const string DmsFileDirectory = "FileServiceSettings:DmsFileDirectory";
public const string RequestPath = "FileServiceSettings:RequestPath";
public const string ExcelOutputDirectory = "FileServiceSettings:ExcelOutputDirectory";
@@ -20,5 +24,38 @@ namespace CloudBuilder.Security.Policy
public const string FfmpegPictrue = "Ffmpeg:Pictrue";
public const string FfmpegArguments = "Ffmpeg:Arguments";
public static string GetPhysicalFileDirectory(IApplicationService service)
{
return service.Configuration[PhysicalFileDirectory];
}
public static string GetUploadFileDirectory(IApplicationService service)
{
return service.Configuration[UploadFileDirectory];
}
public static string GetBackupFileDirectory(IApplicationService service)
{
return service.Configuration[BackupFileDirectory];
}
public static string GetScaleFileDirectory(IApplicationService service)
{
return service.Configuration[ScaleFileDirectory];
}
public static string GetDmsFileScaleDirectory(IApplicationService service)
{
return Path.Combine(service.Configuration[ScaleFileDirectory], service.Configuration[DmsFileDirectory]);
}
public static string GetDmsFileBackupDirectory(IApplicationService service)
{
return Path.Combine(service.Configuration[BackupFileDirectory], service.Configuration[DmsFileDirectory]);
}
public static string GetDmsFileUploadDirectory(IApplicationService service)
{
return Path.Combine(service.Configuration[UploadFileDirectory], service.Configuration[DmsFileDirectory]);
}
}
}