VoDA.FtpServer
1.0.0
VoDA.FtpServer は、シンプルな FTP サーバー ライブラリです。このライブラリは、FTP プロトコルとの対話をイベント レベルまで簡素化します。認可またはデータの操作に関連するサーバーへのすべてのリクエストにより、実装する必要があるイベントが発生します。
サーバーを起動するには、以下の例に示すように、FtpServerBuilder オブジェクトを作成し、関数を使用して構成する必要があります。各関数の詳細については、「ConfigurationParameters」を参照してください。構成後、 Build()
関数を呼び出してサーバーを作成します。
ファイル システムを操作するための FTP サーバーの例は、Test プロジェクトに示されています。
var server = new FtpServerBuilder ( )
. ListenerSettings ( ( config ) =>
{
config . Port = 21 ; // enter the port
config . ServerIp = System . Net . IPAddress . Any ;
} )
. Log ( ( config ) =>
{
config . Level = LogLevel . Information ; // enter log level. Default: Information
} )
. Certificate ( ( config ) =>
{
config . CertificatePath = ". \ server.crt" ;
config . CertificateKey = ". \ server.key" ;
} )
. Authorization ( ( config ) =>
{
config . UseAuthorization = true ; // enable or disable authorization
config . UsernameVerification += ( username ) => { .. . } ; // username verification
config . PasswordVerification += ( username , password ) => { .. . } ; //verification of username and password
} )
. FileSystem ( ( fs ) =>
{
fs . OnDeleteFile += ( client , path ) => { .. . } ; // delete file event
fs . OnRename += ( client , from , to ) => { .. . } ; // rename item event
fs . OnDownload += ( client , path ) => { .. . } ; // download file event
fs . OnGetList += ( client , path ) => { .. . } ; // get items in folder event
fs . OnExistFile += ( client , path ) => { .. . } ; // file check event
fs . OnExistFoulder += ( client , path ) => { .. . } ; // folder check event
fs . OnCreate += ( client , path ) => { .. . } ; // file creation event
fs . OnAppend += ( client , path ) => { .. . } ; // append file event
fs . OnDeleteFolder += ( client , path ) => { .. . } ; // remove folder event
fs . OnUpload += ( client , path ) => { .. . } ; // upload file event
fs . OnGetFileSize += ( client , path ) => { .. . } ; // get file size event
fs . OnGetFileModificationTime += ( client , path ) => { .. . } ; // returns the last modified date of the file
} )
. Build ( ) ;
// Start FTP-serer
server . StartAsync ( System . Threading . CancellationToken . None ) . Wait ( ) ;
または、コンテキスト クラスを継承する独自のクラスを使用することもできます。例を以下に示します。
この例では、クラスMyAuthorization
VoDA.FtpServer.Contexts.AuthorizationOptionsContext
から継承され、クラスMyFileSystem
VoDA.FtpServer.Contexts.FileSystemOptionsContext
から継承されます。
var server = new FtpServerBuilder ( )
. ListenerSettings ( ( config ) =>
{
config . Port = 21 ; // enter the port
config . ServerIp = System . Net . IPAddress . Any ;
} )
. Log ( ( config ) =>
{
config . Level = LogLevel . Information ; // enter log level. Default: Information
} )
. Certificate ( ( config ) =>
{
config . CertificatePath = ". \ server.crt" ;
config . CertificateKey = ". \ server.key" ;
} )
. Authorization < MyAuthorization > ( )
. FileSystem < MyFileSystem > ( )
. Build ( ) ;
// Start FTP-serer
server . StartAsync ( System . Threading . CancellationToken . None ) . Wait ( ) ;
完全な例は、「テスト プロジェクト」を参照してください。