127 lines
5.8 KiB
C#
127 lines
5.8 KiB
C#
using CloudBuilder.Core.DatabaseAccessor.Entity;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CloudBuilder.Security.Policy
|
|
{
|
|
public class FileTypePolicy
|
|
{
|
|
public const string VIDEO = "V";
|
|
public const string AUDIO = "A";
|
|
public const string PHOTO = "P";
|
|
public const string DOCUMENT = "D";
|
|
public const string LYRIC = "L";
|
|
|
|
public static string GetType(string value)
|
|
{
|
|
if (string.IsNullOrEmpty(value)) return DOCUMENT;
|
|
else if (value.ToLower().Contains(".lrc")) return LYRIC;
|
|
|
|
else if (value.ToLower().Contains(".jpg") || value.ToLower().Contains(".png") ||
|
|
value.ToLower().Contains(".webp") || value.ToLower().Contains(".bmp") ||
|
|
value.ToLower().Contains(".gif") || value.ToLower().Contains(".jpeg")) return PHOTO;
|
|
|
|
else if (value.ToLower().Contains(".avi") || value.ToLower().Contains(".mpeg") ||
|
|
value.ToLower().Contains(".mov") || value.ToLower().Contains(".wmv") ||
|
|
value.ToLower().Contains(".mp4") || value.ToLower().Contains(".mkv") ||
|
|
value.ToLower().Contains(".flv") || value.ToLower().Contains(".rm")) return VIDEO;
|
|
|
|
else if (value.ToLower().Contains(".mp3") || value.ToLower().Contains(".wav") ||
|
|
value.ToLower().Contains(".flac") || value.ToLower().Contains(".ape") ||
|
|
value.ToLower().Contains(".wma") || value.ToLower().Contains(".mid")) return AUDIO;
|
|
|
|
return DOCUMENT;
|
|
}
|
|
|
|
|
|
public static bool IsAudio(string value)
|
|
{
|
|
return GetType(value) == AUDIO;
|
|
}
|
|
|
|
public static bool IsPhoto(string value)
|
|
{
|
|
return GetType(value) == PHOTO;
|
|
}
|
|
|
|
public static bool IsVideo(string value)
|
|
{
|
|
return GetType(value) == VIDEO;
|
|
}
|
|
|
|
public static bool IsLyric(string value)
|
|
{
|
|
return GetType(value) == LYRIC;
|
|
}
|
|
|
|
|
|
public static string PackUrl(IApplicationService service, string createdBy, string orderKey, string transcodeIndc)
|
|
{
|
|
string url = string.Empty;
|
|
var webRootPath = service.Configuration["FileServiceSettings:RequestPath"];
|
|
var phy = service.Configuration["FileServiceSettings:PhysicalFileDirectory"];
|
|
|
|
var fileExtension = Path.GetExtension(orderKey);//获取文件格式,拓展名
|
|
if (GetType(orderKey!) == FileTypePolicy.PHOTO)
|
|
{
|
|
if (transcodeIndc == YesNoPolicy.YES)
|
|
{
|
|
var backup = service.Configuration["FileServiceSettings:BackupDmsFileDirectory"].Replace(phy, "");
|
|
var filePath = $"{backup.Replace("\\", "/")}/{createdBy}/{fileExtension.Replace(".", "")}/";
|
|
url = service.Configuration["applicationUrl"] + webRootPath + filePath + orderKey;
|
|
}
|
|
else
|
|
{
|
|
var scale = service.Configuration["FileServiceSettings:ScaleDmsFileDirectory"].Replace(phy, "");
|
|
var filePath = $"{scale.Replace("\\", "/")}/{createdBy}/{fileExtension.Replace(".", "")}/";
|
|
url = service.Configuration["applicationUrl"] + webRootPath + filePath + orderKey;
|
|
}
|
|
}
|
|
else if (GetType(orderKey!) == FileTypePolicy.AUDIO)
|
|
{
|
|
var backup = service.Configuration["FileServiceSettings:BackupDmsFileDirectory"].Replace(phy, "");
|
|
var filePath = $"{backup.Replace("\\", "/")}/{createdBy}/{fileExtension.Replace(".", "")}/";
|
|
url = service.Configuration["applicationUrl"] + webRootPath + filePath + orderKey;
|
|
}
|
|
else if (GetType(orderKey!) == FileTypePolicy.VIDEO)
|
|
{
|
|
if (transcodeIndc == YesNoPolicy.YES)
|
|
{
|
|
var upload = service.Configuration["FileServiceSettings:UploadDmsFileDirectory"].Replace(phy, "");
|
|
var filePath = $"{upload.Replace("\\", "/")}/{createdBy}/m3u8/";
|
|
url = service.Configuration["applicationUrl"] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + "/main.m3u8";
|
|
}
|
|
else
|
|
{
|
|
var backup = service.Configuration["FileServiceSettings:BackupDmsFileDirectory"].Replace(phy, "");
|
|
var filePath = $"{backup.Replace("\\", "/")}/{createdBy}/{fileExtension.Replace(".", "")}/";
|
|
url = service.Configuration["applicationUrl"] + webRootPath + filePath + orderKey;
|
|
}
|
|
}
|
|
|
|
return url;
|
|
}
|
|
|
|
public static string PackSourceVideoUrl(IApplicationService service, string createdBy, string orderKey)
|
|
{
|
|
var webRootPath = service.Configuration["FileServiceSettings:RequestPath"];
|
|
var phy = service.Configuration["FileServiceSettings:PhysicalFileDirectory"];
|
|
var upload = service.Configuration["FileServiceSettings:BackupDmsFileDirectory"].Replace(phy, "");
|
|
var fileExtension = Path.GetExtension(orderKey);//获取文件格式,拓展名
|
|
var filePath = $"{upload.Replace("\\", "/")}/{createdBy}/{fileExtension.Replace(".", "")}/";
|
|
return service.Configuration["applicationUrl"] + webRootPath + filePath + orderKey;
|
|
|
|
}
|
|
public static string PackFilePath(IApplicationService service, string createdBy, string orderKey)
|
|
{
|
|
var backup = service.Configuration["FileServiceSettings:BackupDmsFileDirectory"]!;
|
|
var fileExtension = Path.GetExtension(orderKey).Replace(".", "");//获取文件格式,拓展名
|
|
|
|
return Path.Combine(backup, createdBy, fileExtension, orderKey);
|
|
}
|
|
}
|
|
}
|