Go: upload di file tramite FTP

Go: upload di file tramite FTP

Il File Transfer Protocol (FTP) è un protocollo standard utilizzato per il trasferimento di file tra un client e un server su una rete. In questo articolo, esploreremo come effettuare l'upload di file tramite FTP in Go, un linguaggio di programmazione versatile e potente. Impareremo come connetterci a un server FTP, caricare un file e gestire eventuali errori lungo il percorso.

Iniziamo installando la libreria "goftp" che semplificherà l'interazione con il server FTP. Apri un terminale e digita il seguente comando per installare la libreria:


go get github.com/jlaffaye/ftp

Dopo aver installato le dipendenze, creiamo un nuovo file chiamato "main.go" e apriamo il nostro editor di testo preferito per iniziare a scrivere il codice.


package main

import (
	"fmt"
	"github.com/jlaffaye/ftp"
	"os"
)

func main() {
	// Dati di accesso al server FTP
	ftpServer := "ftp.example.com"
	username := "your_username"
	password := "your_password"

	// Percorso del file locale da caricare
	localFilePath := "path/to/your/file.txt"

	// Percorso di destinazione sul server FTP
	remoteDir := "/path/on/ftp/server/"

	// Connessione al server FTP
	ftpClient, err := ftp.Dial(ftpServer)
	if err != nil {
		fmt.Println("Errore durante la connessione al server FTP:", err)
		return
	}
	defer ftpClient.Quit()

	// Autenticazione
	err = ftpClient.Login(username, password)
	if err != nil {
		fmt.Println("Errore durante l'autenticazione:", err)
		return
	}

	// Apertura del file locale
	file, err := os.Open(localFilePath)
	if err != nil {
		fmt.Println("Impossibile aprire il file locale:", err)
		return
	}
	defer file.Close()

	// Creazione della directory remota (se non esiste)
	err = ftpClient.MakeDir(remoteDir)
	if err != nil {
		fmt.Println("Errore durante la creazione della directory remota:", err)
	}

	// Caricamento del file
	remoteFilePath := remoteDir + "file.txt"
	err = ftpClient.Stor(remoteFilePath, file)
	if err != nil {
		fmt.Println("Errore durante il caricamento del file:", err)
		return
	}

	fmt.Println("File caricato con successo!")
}


Prima di eseguire il codice, assicurarsi di sostituire i valori di "ftpServer", "username", "password", "localFilePath" e "remoteDir" con i dati appropriati del proprio server FTP e del file da caricare.

Torna su