Feature: SFTP Provider (ManagedCode.Storage.Sftp)

Purpose

Implement IStorage on top of SFTP using SSH (for legacy systems and air-gapped environments).

Main Flows

flowchart LR
  App --> S[SftpStorage : ISftpStorage]
  S --> SSH[SSH.NET]
  SSH --> Server[(SFTP Server)]

Components

DI Wiring

dotnet add package ManagedCode.Storage.Sftp
using ManagedCode.Storage.Sftp.Extensions;

builder.Services.AddSftpStorageAsDefault(options =>
{
    options.Host = "sftp.example.com";
    options.Username = configuration["Sftp:Username"];
    options.Password = configuration["Sftp:Password"];
    options.RemoteDirectory = "/uploads";
});

Current Behavior

Tests