Alex FTPS Client

Client FTP/FTPS e class library .Net / Mono 2.0 disponibili su www.codeplex.com/ftps

Microsoft nel corso del 2008 ha rilasciato un nuovo servizo FTP per quel gioiellino di IIS 7.0.

Nel caso vi fosse sfuggito, è disponibile qui (x86) e qui (x64), cui va aggiunta un'update

L'idea o per meglio dire la necessità di scrivere un client FTPS è venuta mentre preparavo il materiale per una sessione di WPC08 sulle estensioni di IIS 7.0.

Preparando le demo per il nuovo supporto FTPS, non ho trovato un solo client freeware / opensource che supportasse i requisiti di cui avevo bisogno.

Inoltre volevo integrare una piccola Cmdlet per Powershell, cosa che ho dovuto escludere dato che non esisteva una sola class library con adeguato supporto FTPS (Per la cronaca,  FtpWebRequest.EnableSsl non basta per tutte le casistiche)

Il client supporta FTP per IIS 7.0, vsftpd, wu-ftpd e in generale è stato testato con i più diffusi servizi FTP. 

Tra gli obiettivi del progetto:
  • Portabilità. Il client, scritto per .Net 2.0, grazie a Mono gira perfettamente anche su Linux e Mac OS X.
  • Supporto FTPS implicito ed esplicito, con possibilità discriminare il control channel dal data channel
  • Supporto per un maggior numero di comandi rispetto a System.Net.FtpWebRequest
  • Semplicità di utilizzo, sia del client che della class library

Per chi vuole approfondire sempre su www.codeplex.com/ftps c'è la documentazione del progetto.

Di seguito un piccolo snippet per mostrare l'ulitizzo basilare della class library in C#.

using AlexPilotti.FTPS.Client;using AlexPilotti.FTPS.Common;using System.Net;
... 
 
using (FTPSClient client = new FTPSClient())
{   
    // Connect to the server, with mandatory SSL/TLS encryption         
    // during authentication and optional encryption on the         
    // data channel (directory lists, file transfers)        
    client.Connect("ftp.yourserver.com",                   
                   new NetworkCredential("yourUsername", "yourPassword"),                   
                   ESSLSupportMode.CredentialsRequired |                    
                   ESSLSupportMode.DataChannelRequested);        
                   
    // Download a file         
    client.GetFile("/path/to/remotefile.jpg", "c:\\local\\path\\");
}

Moonlight 1.0 Final!

Moonlight 1.0 è stato rilasciato!

Documentazione e plugin per Firefox su Linux (x86 e x64):

http://go-mono.com/moonlight/

Per le altre piattaforme qui c'è la tarball coi sorgenti:

http://ftp.novell.com/pub/mono/sources/moon/moon-1.0.tar.bz2