namespace Tiku.Application.Storage; public interface IObjectStorageService { string ConfiguredDefaultProvider(); string ConfiguredDefaultBucket(); string NormalizeProvider(string? value, string? fallback = null); string ValidateObjectKey(Guid tenantId, string objectKey); string ValidateMimeType(string mimeType); long? ValidateFileSize(long? fileSizeBytes); void AssertUploadProvider(string provider); void AssertWritableLocation(StorageAssetLocation location); Task SignUploadAsync( ObjectStorageUploadSignRequest request, CancellationToken cancellationToken = default); Task SignDownloadAsync( ObjectStorageDownloadSignRequest request, CancellationToken cancellationToken = default); Task HeadObjectAsync( ObjectStorageHeadRequest request, CancellationToken cancellationToken = default); }