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 2017 / C# 7.2
- Visual Studio 2017
- .NET Standard 2.0
Description | Badge |
---|---|
FubarDev.FtpServer : Core library |
|
FD.FS.Abstractions : Basic types |
|
FD.FS.FileSystem.DotNet : System.IO -based file system |
|
FD.FS.FileSystem.GoogleDrive : Google Drive as file system |
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 ftpServer = serviceProvider.GetRequiredService<IFtpServer>();
// Start the FTP server
ftpServer.Start();
Console.WriteLine("Press ENTER/RETURN to close the test application.");
Console.ReadLine();
// Stop the FTP server
ftpServer.Stop();
}