This FTP server is written as .NET Standard 2.0 library and has an abstract file system which allows e.g. Google Drive as backend.
The library is released under the .
- Visual Studio 2022 / C# 8.0
- Visual Studio 2022
- .NET Standard 2.0 (everything except sample application, PAM authentication)
- .NET Core 3.1 (PAM authentication)
dotnet new console dotnet add package FubarDev.FtpServer.FileSystem.DotNet dotnet add package FubarDev.FtpServer dotnet add package Microsoft.Extensions.DependencyInjection
// Setup dependency injection var services = new ServiceCollection(); // use %TEMP%/TestFtpServer as root folder services.Configure<DotNetFileSystemOptions>(opt => opt .RootPath = Path.Combine(Path.GetTempPath(), "TestFtpServer")); // Add FTP server services // DotNetFileSystemProvider = Use the .NET file system functionality // AnonymousMembershipProvider = allow only anonymous logins services.AddFtpServer(builder => builder .UseDotNetFileSystem() // Use the .NET file system functionality .EnableAnonymousAuthentication()); // allow anonymous logins // Configure the FTP server services.Configure<FtpServerOptions>(opt => opt.ServerAddress = "127.0.0.1"); // Build the service provider using (var serviceProvider = services.BuildServiceProvider()) { // Initialize the FTP server var ftpServerHost = serviceProvider.GetRequiredService<IFtpServerHost>(); // Start the FTP server ftpServerHost.StartAsync(CancellationToken.None).Wait(); Console.WriteLine("Press ENTER/RETURN to close the test application."); Console.ReadLine(); // Stop the FTP server ftpServerHost.StopAsync(CancellationToken.None).Wait(); }