using Ardalis.Result; namespace Musify.Application.Contracts.Infrastructure { public interface IStorageHandler { Task> GetFile(string bucketName, string keyName, CancellationToken cancellationToken); Task GetUrl(string bucketName, string keyName, TimeSpan ExpirationTime, CancellationToken cancellationToken); Task> UploadFile(Stream sourceStream, string contentType, string bucketName, string keyName, CancellationToken cancellationToken); Task TransferFiles(string sourceDirectory, string bucketName, string route, CancellationToken cancellationToken); Task RemoveFile(string bucketName, string keyName, CancellationToken cancellationToken); } }