namespace foodmarket.Api.Storage; /// Конфиг секции Storage. Биндится в Program.cs. public sealed class StorageOptions { /// Какой backend использовать. Local (default) — диск /// в ContentRoot/uploads. Minio — S3-совместимый bucket. public StorageType Type { get; set; } = StorageType.Local; /// Относительный путь под ContentRoot для Local-стораджа. public string LocalRoot { get; set; } = "uploads"; /// S3/MinIO endpoint (без https). Например /// 192.168.1.190:9000 или minio:9000. Прокидывается через /// env Storage__Endpoint. public string? Endpoint { get; set; } /// S3 access key. env Storage__AccessKey. public string? AccessKey { get; set; } /// S3 secret key. env Storage__SecretKey. public string? SecretKey { get; set; } /// HTTPS или HTTP. На staging-vm у нас HTTP. public bool UseSsl { get; set; } /// Bucket. Создаётся автоматически на старте если не существует. public string Bucket { get; set; } = "food-market-uploads"; } public enum StorageType { Local, Minio }