pyftpdlib adalah library FTP server pada Python yang menyediakan antarmuka yang mudah dan portabel sehingga hanya dengan menuliskan konfigurasi dalam satu baris saja kita dapat membuat FTP server. Ini adalah implementasi FTP server RFC-959 terlengkap yang tersedia untuk bahasa pemrograman Python.

Cara Install

Sebelum menginstall pastikan dulu bahwa sistem yang ada pada OS kita sudah terpasang Python 3, dan paket managernya yakni pip3. Jika pip3 belum terpasang, Anda dapat menginstallnya dengan perintah:

sudo apt install python3-pip

Dengan asumsi bahwa komputer sudah terpasang Python 3 dan pip3, gunakan perintah berikut ini untuk menginstall:

pip3 install pyftpdlib

Contoh Penggunaan

Contoh Sederhana

Jika instalasi berhasil, kita dapat langsung menjalankan ftp server kita dengan perintah:

python3 -m pyftpdlib

Dengan perintah tersebut di atas, maka server ftp kita sudah jalan. Adapun penyimpanan yang lokasi yang dapoat diakses oleh klien FTP adalah direktlori dimana perintah di atas dieksekusi. FTP server yang sudah kita jalankan dapat diakses oleh klien melalui alamat:

ftp://alamat-ip:2121

Menampilkan bantuan

Untuk melihat semua fitur yang ada pada pyftpdlib, cobalah untuk mencari tahu dengan melihat dokumentasi bantuan yang dibawa oleh pyftpdlib. Caranya adalah:

python3 -m pyftpdlib --help

Maka akan ditampilkan bantuannya, dengan isi kurang lebih:

ubejo2004-arh@ubejo2004arh:~$ python3 -m pyftpdlib --help
Usage: python -m pyftpdlib [options]

Start a stand alone anonymous FTP server.

Options:
  -h, --help
     show this help message and exit

  -i ADDRESS, --interface=ADDRESS
     specify the interface to run on (default all interfaces)

  -p PORT, --port=PORT
     specify port number to run on (default 2121)

  -w, --write
     grants write access for logged in user (default read-only)

  -d FOLDER, --directory=FOLDER
     specify the directory to share (default current directory)

  -n ADDRESS, --nat-address=ADDRESS
     the NAT address to use for passive connections

  -r FROM-TO, --range=FROM-TO
     the range of TCP ports to use for passive connections (e.g. -r 8000-9000)

  -D, --debug
     enable DEBUG logging evel

  -v, --version
     print pyftpdlib version and exit

  -V, --verbose
     activate a more verbose logging

  -u USERNAME, --username=USERNAME
     specify username to login with (anonymous login will be disabled and password required if supplied)

  -P PASSWORD, --password=PASSWORD
     specify a password to login with (username required to be useful)
Parameter Fungsi
-h atau
--help
menampilkan help atau bantuan
-i ADDRESS atau
--interface=ADDRESS
jika dalam koputer kita terdapat lebih dari satu perangkat jaringan, maka kita bisa menentukan dari perangkat jaringan mana server FTP dapat diakses. Jika parameter ini tidak diisi maka server FTP dapat diakses dari perangkat jaringan manapun.
eits, mohon kireksi jika penjelasan saya ini salah
-p PORT atau
--port=PORT
untuk menentukan, FTP server kita berjalan dan dapat diakses dari port berapa. Jika parameter ini tidak digunakan server FTP dapat diakses dari port 2121.
-w atau
--write
Untuk memberikan kewenangan baca dan tulis kepada klien yang mengakses. Jika parameter ini tidak digunakan maka hanya dapat membaca saja.
-d FOLDER atau
--directory=FOLDER
Untuk menentukan folder mana yang akan dishare oleh FTP server. Jika tidak ditentukan maka folder yang dishare adalah folder dimana perintah ini dieksekusi
-n ADDRESS atau
--nat-address=ADDRESS
alamat NAT yang akan digunakan untuk koneksi pasif
-v atau
--version
Menampilkan versi pyftpdlib
-u USERNAME atau
--username=USERNAME
menentukan username yang digunakan untuk login ke FTP server
-p PASSWORD atau
--password=PASSWORD
menentukan password yang digunakan untuk login ke FTP server

Contoh Lain

Contoh 1

ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib

Penjelasan:
Saat ini user ubejo20 berada pada directory Documents dan menjalankan python3 -m pyftpdlib,

  1. server FTP berjalan tanpa keamanan username dan password,
  2. dapat diakses melalui semua alamat IP yang tersemat pada semua perangkat jaringan (LAN card dll) yang terpasang pada komputer,
  3. port yang dipakai port 2121,
  4. folder yang dishare adalah folder Documents,
  5. klien yang mengakses hanya dapat membaca saja.

Contoh 2

ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib --port=2598 --username=bejo --password=123456789 --directory=Berbagi

Penjelasan:

  1. Saat ini user bernama ubejo21 berada pada directory Documents dan menjalankan python3 -m pyftpdlib
  2. server FTP berjalan pada port 2598
  3. dapat diakses melalui semua alamat IP yang tersemat pada semua perangkat jaringan (LAN card dll) yang terpasang pada komputer,
  4. forder yang dibagikan adalah folder Berbagi di dalam folder Documents user ubejo20
  5. untuk masuk ke server FTP diperlukan username bejo dan password 123456789
  6. klien yang mengakses hanya dapat membaca saja

Contoh 3

ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib --write --port=2598 --username=bejo --password=123456789 --directory=Berbagi

Penjelasan:

Sama dengan contoh 2 di atas, dengan tambahan klien yang mengakses tidak hanya bisa membaca, namun juga bisa menulis dan menghapus apa yang ada di dalam folder yang dibagikan.

Mengakses Server FTP

Bagaimana cara kita mengakses server FTP?

Kita dapat mengakses server FTP menggunakan FTP klien seperti FileZilla, file manager dan bahkan web browser. Hanya saja jika kita menggunakan web browser, maka hanya bisa membaca saja server FTP memperbolehkan baca tulis.

Untuk mengakses kita hanya perlu memasukkan alamat server FTP kita. Berikut ini adalah tangkapan layar beberapa aplikasi klien yang sedang mengakses server FTP yang kita buat.

Akses FTP dengan Nautilus (Files)
Akses FTP dengan FileZilla

Leave a Reply

Your email address will not be published. Required fields are marked *