namespace SatelliteProvider.Common.Configs; public class StorageConfig { public string TilesDirectory { get; set; } = "/tiles"; public string ReadyDirectory { get; set; } = "/ready"; public string GetTileSubdirectoryPath(int zoomLevel, int tileX, int tileY) { var xBucket = tileX / 1000; var yBucket = tileY / 1000; return Path.Combine(TilesDirectory, zoomLevel.ToString(), xBucket.ToString(), yBucket.ToString()); } public string GetTileFilePath(int zoomLevel, int tileX, int tileY, string timestamp) { var subdirectory = GetTileSubdirectoryPath(zoomLevel, tileX, tileY); var fileName = $"tile_{zoomLevel}_{tileX}_{tileY}_{timestamp}.jpg"; return Path.Combine(subdirectory, fileName); } }