Skip to main content
Glama
IConnectorFileProvider.cs3.81 kB
using Api.DigitalPages.Interfaces.Models; using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace Api.DigitalPages.Interfaces.Connector { public interface IConnectorFileProvider : ISystemConnectorBasePagedFlow<IFileVersion, FileVersionOptions>, ISystemConnectorBaseCrudFlowV2<IFile, FileOptions>, ISystemConnectorBaseCrudFlowV2<IFileAuthorization, IFile, FileAuthorizationOptions>, ISystemConnectorBaseCrudFlowV3<IFileVersion, FileVersionOptions>, IConnectorContextRequired, IConnectorDetail { Task<IFile> SyncFiles(string path); Task<IFileVersion> RegisterVersion(IFile file, StreamData data, bool partial = false); Task<IFileVersion> RegisterVersion(Guid fileUid, StreamData data, bool partial = false); Task<IFileVersion> UpdateVersion(IFileVersion fileVersion, List<StreamData> datas); Task<IFileVersion> AppendVersion(IFileVersion fileVersion, Stream data, long? startindex = null); Task<StreamResult> GetVersion(IFileVersion fileVersion, string internalFile = null); Task<StreamResult> GetVersion(Guid versionUid, string internalFile = null); Task<Stream> WriteVersion(IFileVersion fileVersion); } public class FileOptions : IBaseCrudOptions { public List<Guid> FilterUid { get; set; } public IBaseAuthorizationFilter FilterAuthorizations { get; set; } public List<Guid> FilterEntities { get; set; } public List<FileVersionState> FilterStates { get; set; } public bool IncludeAuthorizations { get; set; } public bool IncludeMatchAuthorizations { get; set; } public bool IncludeVersions { get; set; } public bool IncludeProperties { get; set; } public bool IncludeEntities { get; set; } } public class FileAuthorizationOptions : IBaseCrudOptions { public List<Guid> FilterUid { get; set; } public bool IncludeReferences { get; set; } public IBaseAuthorizationFilter FilterFileAuthorizations { get; set; } } public class FileVersionOptions : IBaseCrudOptions { public List<Guid> FilterUid { get; set; } public List<Guid> FilterFileUid { get; set; } public List<FileVersionState> FilterState { get; set; } public List<string> FilterMimeTypes { get; set; } public List<string> FilterProperties { get; set; } public List<Guid> FilterEntities { get; set; } public IBaseAuthorizationFilter FilterAuthorizations { get; set; } public bool IncludeAuthorizations { get; set; } public bool IncludeMatchAuthorizations { get; set; } public bool IncludeProperties { get; set; } public bool IncludeEntities { get; set; } public bool IncludeFile { get; set; } } public class StreamResult : StreamData { public string Error { get; } public StreamResult(string error) { this.Error = error; } public StreamResult(Stream stream, string mimeType, string fileName, long size) : base(stream, mimeType, fileName, size) { } } public class StreamData : IDisposable { public Stream Stream { get; private set; } public string MimeType { get; } public string FileName { get; } public long Size { get; } public StreamData() { } public StreamData(Stream stream, string mimeType, string fileName, long size) { this.Stream = stream; this.MimeType = mimeType; this.FileName = fileName; this.Size = size; } public void Dispose() { Stream?.Dispose(); Stream = Stream.Null; } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server