29 lines
1.1 KiB
C#
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);
|
|
}
|