using VoidCat.Model; namespace VoidCat.Services.Abstractions; /// /// File binary data store /// public interface IFileStore { /// /// Return key for named instance /// string? Key { get; } /// /// Ingress a file into the system (Upload) /// /// /// /// ValueTask Ingress(IngressPayload payload, CancellationToken cts); /// /// Egress a file from the system (Download) /// /// /// /// /// ValueTask Egress(EgressRequest request, Stream outStream, CancellationToken cts); /// /// Pre-Egress checks /// /// /// ValueTask StartEgress(EgressRequest request); /// /// Deletes file data only, metadata must be deleted with /// /// /// ValueTask DeleteFile(Guid id); /// /// Open a filestream for a file on the system /// /// /// /// ValueTask Open(EgressRequest request, CancellationToken cts); }