FTP


Wstęp

Moduł FTP implementuje zestaw najbardziej przydatnych komend protokołu FTP. Aby można było polączyć sie z serwerem, należy zdefiniować konektor FTP w konfiguracji instancji jPALIO. Jego konfiguracja jest opisana w artykule Dokumentacja > Konektory > FTP.

Zobacz także:


[FTP] Konfiguracja
 

Przykłady

Operacje związane z plikami

$// Pobranie pliku z serwera ftp
$ftp.retriveFile("ftp_konektor", "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz", "/tmp/kernel.tar.gz")
$// Wgranie pliku na serwer ftp
$ftp.storeFile("ftp_konektor", "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz", "/tmp/kernel.tar.gz")
$// Zmiana nazwy pliku na serwerze ftp
$ftp.renameFile("ftp_konektor", "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz", "/pub/linux/kernel/stable/linux-stable.tar.gz")
$// Usunięcie pliku na serwerze ftp
$ftp.deleteFile("ftp_konektor", "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz")
$// Sprawdzenie rozmiaru pliku na serwerze ftp
$ftp.getFileSize("ftp_konektor", "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz")

 

Operacje związane z katalogami

$// Utworzenie katalogu
$ftp.makeDirectory("ftp_konektor", "/pub/linux/kernel/stable")
$// Usunięcie katalogu - katalog musi być pusty
$ftp.removeDirectory("ftp_konektor", "/pub/linux/kernel/stable")

 

Listowanie zdalnych zasobów FTP

$// Wypisanie plików z katalogu na serwerze ftp. Ostatni parametr mówi
$// o tym że wyświetlane pliki mają mieć pełną ścieżkę.
$ftp.listFiles("ftp_konektor", "/pub/linux/kernel/stable", true)

Zaawansowane użycie

Moduł FTP udostępnia metodę execute umożliwiającą wykonywanie operacji związanych z komunikacją z serwerem FTP, które nie są wspierane bezpośrednio przez moduł. Powinna być używana, w obiektach Groovy, przez programistów posiadających podstawowową wiedzę związaną z biblioteką Apache Commons Net a bardziej szczegółowo z klasą org.apache.commons.net.ftp.FTPClient.

Metoda jako pierwszy argument przyjmuje nazwę konektora. Jako drugi argument podawany jest dynamiczny kod Groovy - Closure. Kod ten wywoływany jest z jednym argumentem typu org.apache.commons.net.ftp.FTPClient. Programista może w ten sposób wykonać dowolną operację/operacje wspieraną przez tą klasę przy jednoczesnym wsparciu mechanizmów jPALIO związanych z zarządzaniem połączeniami.

Poniżej przedstawiono przykład użycia.

palio.Groovy.module("ftp").execute("ftp") {client ->

    println "### Status"
    println client.getStatus()
    
    println "### File names:"
    for (f in client.listNames()) {
        println f
    }

}
Przykładowy wynik działania powyższego kodu:

### Status
211-Status of '0.0.0.0'
 Connected from ::ffff:127.0.0.1 (::ffff:127.0.0.1)
 Logged in as devel
 TYPE: BINARY, STRUcture: File, Mode: Stream
 Total bytes transferred for session: 120
 No data connection
211 End of status
### File names:
welcome.msg

API

http://jpalio.torn.com.pl/modules/palio/modules/FTP.html

http://commons.apache.org/net/api-release/org/apache/commons/net/ftp/FTPClient.html