Files
tiku-backend.net/Tiku.Infrastructure/Storage/ObjectStorageOptions.cs
2026-07-26 14:43:04 +08:00

29 lines
1.1 KiB
C#

namespace Tiku.Infrastructure.Storage;
public sealed class ObjectStorageOptions
{
public const string SectionName = "Storage";
public string DefaultProvider { get; set; } = "local_dev";
public string DefaultBucket { get; set; } = "tenant-assets";
public string? PublicBaseUrl { get; set; }
public long MaxUploadBytes { get; set; } = 1024L * 1024 * 500;
public string[] AllowedMimePrefixes { get; set; } = ["image/", "video/", "audio/"];
public string[] AllowedMimeTypes { get; set; } =
[
"application/pdf",
"application/json",
"text/csv",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
];
public bool RequireTenantPrefix { get; set; } = true;
public static bool BeValid(ObjectStorageOptions options) =>
options.MaxUploadBytes > 0 &&
!string.IsNullOrWhiteSpace(options.DefaultProvider) &&
!string.IsNullOrWhiteSpace(options.DefaultBucket);
}