A partire da .NET 6, le classi HttpWebRequest, FtpWebRequest e le loro collegate sono state deprecate e per nuovi progetti ne è sconsigliato l'utilizzo. Mentre la classe HttpWebRequest è stata sostituita da HttpClient, FtpWebRequest non ha visto e non vedrà lo sviluppo di una nuova controparte moderna all'interno di .NET. Nella documentazione, Microsoft consiglia anzi l'adozione di librerie di terze parti. In questo script vedremo come utilizzare la libreria FluentFTP per effettuare l'upload di un file, mentre nei prossimi script ci occuperemo di altri task come il download e l'enumerazione del contenuto di una cartella.
Per utilizzare FluentFTP, dobbiamo innanzitutto installare l'omonimo package da NuGet e poi creare un'istanza della classe FtpClient passando al costruttore parametri come l'indirizzo IP o l'url, la porta, username e password (se necessari). Una volta ottenuta l'istanza, dobbiamo invocare il metodo AutoConnectAsync per stabilire la connessione al server. A questo punto possiamo effettuare l'upload di un file invocando il metodo UploadFileAsync passando in input il percorso del file sul client e il percorso sul server comprensivo del nome del file.
using var client = new FtpClient("1.1.1.1", "username", "pwd");
await client.AutoConnectAsync();
await client.UploadFileAsync(@"C:\MyFile.txt", "/myfolder/myfile.txt");La libreria offre anche overload per specificare cosa fare se il file esiste già sul server, se creare la cartella sul server nel caso non esista e un callback per tracciare lo stato di avanzamento dell'upload.
Se invece del file fisico abbiamo a disposizione uno stream o un array di byte, possiamo usare i metodi UploadStreamAsync o UploadByteArrayAsync che supportano gli stessi parametri visti nell'esempio sopra con l'eccezione della sorgente che non è il percorso del file, ma un'istanza dello stream o dell'array di byte.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
- Utilizzare l nesting nativo dei CSS
- Creare una libreria CSS universale: Cards
- Recuperare App Service cancellati su Azure
- Loggare le query più lente con Entity Framework
- Definire il colore di una scrollbar HTML tramite CSS
- Gestione CSS in Blazor con .NET 9
- Configurare e gestire sidecar container in Azure App Service
- Introduzione alle Container Queries
- Ottimizzare le pull con Artifact Cache di Azure Container Registry
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- Utilizzare i variable font nel CSS
- Generare una User Delegation SAS in .NET per Azure Blob Storage


