namespace RobotNet10.StorageManager; public interface IStorageManager: IDisposable { Task UploadAsync(string path, string objectName, Stream data, long size, string contentType, CancellationToken cancellationToken); Task GetUrlAsync(string path, string objectName, CancellationToken cancellationToken); Task GetFileAsync(string path, string objectName, CancellationToken cancellationToken); Task DeleteAsync(string path, string objectName, CancellationToken cancellationToken); Task ExistsAsync(string path, string objectName, CancellationToken cancellationToken); Task> ListAsync(string path, bool recursive, CancellationToken cancellationToken); Task CopyAsync(string sourcePath, string destPath, string objectName, CancellationToken cancellationToken); Task GetMetadataAsync(string path, string objectName, CancellationToken cancellationToken); }