public abstract Task <bool> ExistsFile(FileData file);
public abstract Task <byte[]> ReadFile(FileData file);
public abstract Task <bool> WriteFile(FileData file, byte[] contents, bool append);
public abstract Task <bool> DeleteFile(FileData file);