- Notifications
You must be signed in to change notification settings - Fork 345
ftpserver
Boris Lovosevic edited this page Apr 15, 2018 · 3 revisions
Ftp server is implemented as ESP32 task and runs in background (when started).
| Method | Notes |
|---|---|
| network.ftp.start([user="micro", password="python", buffsize=1024, timeout=300]) | Start FTP server. All arguments are optional, if not set the dafaults are used. Buffsize sets the transfer buffer size, larger buffer enables faster transfers, but uses more memory. |
| network.ftp.pause() | Pause Ftp server. Only when no client is connected. |
| network.ftp.resume() | Resume Ftp server. Only when no client is connected. |
| network.ftp.stop() | Stop Ftp server. Only when no client is connected. The ESP32 task is terminated, all memory is freed. |
| network.ftp.status() | Get the current Ftp server status. The status is returned as 5-item tuple of numeric value and string description of Command and Data channels and listening IP(s) tuple. ( status, data_chan_status, status_str, data_chan_status_str, (listen_IPs)) |
| network.ftp.stack() | Get the maximum amount of stack used by the Ftp task. The stack size is set at compile time and can be changed in mpthreadport.h |
- Only one connection to FTP server at the time can be used
- Passive transfer mode must be used
- Only one data connection can be used, make shure your FTP client does not try to establish multiple data connections
- No encription is allowed, configure your client to use plain FTP (insecure). That shouldn't be an issue, you will mostly use FTP server in local network.
Example of FileZilla settings:

# connect to a WIFI AP, sync time and start telnet and FTP server # Paste it in the Python command line (REPL) # Then you can connect to the IP of your ESP32 in FTP (passive mode) or in telnet ! wifi_ssid = "my_home_ssid" wifi_passwd = "my_wifi_password" my_timezone = "CET-1CEST" # found in second field, text before the coma, in https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo/blob/master/MicroPython_BUILD/components/micropython/docs/zones.csv import network import machine import time sta_if = network.WLAN(network.STA_IF); sta_if.active(True) sta_if.connect(wifi_ssid, wifi_passwd) time.sleep(6) sta_if.ifconfig() rtc = machine.RTC() rtc.init((2018, 01, 01, 12, 12, 12)) rtc.ntp_sync(server= "", tz=my_timezone, update_period=3600) network.ftp.start(user="micro", password="python", buffsize=1024, timeout=300) network.telnet.start(user="micro", password="python", timeout=300) print("IP of this ESP32 is : " + sta_if.ifconfig()[0])