Skip to content

สร้าง FTP server บนภาษา Python ด้วย pyftpdlib

สวัสดีผู้อ่านทุกท่านครับ ความสามารถอย่างหนึ่งของภาษา Python คือ สามารถทำเป็น server ได้ เป็นภาษาที่เรียนรู้ได้ง่ายและมีประสิทธิภาพไม่แพ้ภาษาสคริปอื่น ๆ บนโลกนี้ จึงมีนักพัฒนาได้พัฒนาโปรแกรมต่าง ๆ ด้วยภาษา Python จำนวนมากในต่างประเทศ บทความนี้ผมจะพาผู้อ่านไปปสร้าง FTP server บนภาษา Python ด้วย pyftpdlib กันครับ

การทำ FTP server ผู้อ่านคงนึกไปถึงการตั้ง server แล้วลงไลบรารีต่าง ๆ และตั้งค่า port user ต่าง ๆ และยุ่งยาก หากเราต้องการสร้าง FTP server จำลองในเครื่องเราเองหรือเครื่องที่เชื่อมต่อผ่านอินเทอร์เน็ต ผมจะขอแนะนำโมดูล pyftpdlib  สร้าง FTP server บนภาษา Python

โมดูล pyftpdlib เป็นโมดูลสำหรับใช้สร้าง FTP server บนภาษา Python เข้ากันได้กับมาตรฐาน RFC-959 ครับ

  • มีขนาดเล็ก เร็ว มีประสิทธิภาพไม่ต่างกันกับ proftpd
  • สนับสนุน FTPS (RFC-4217), IPv6 (RFC-2428), Unicode file names (RFC-2640),MLSD/MLST commands (RFC-3659).
  • รองรับทั้ง Python 2 และ Python 3
  • ใช้งานได้ทั้ง UNIX และ Windows
  • ใช้ MIT license

สามารถติดตั้งได้โดยใช้คำสั่ง pip :

pip install pyftpdlib

ตัวอย่างการสร้าง ftp server

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

authorizer = DummyAuthorizer()
authorizer.add_user("user", "12345", "/home/giampaolo",perm="elradfmw") # สร้าง user ชื่อ user รหัส 12345 ที่ตั้ง ftp คือ /home/giampaolo
authorizer.add_anonymous("/home/nobody") # สร้างสิทธิ์ให้เข้าถึงโฟลเลอร์ /home/nobody ให้ user คนทั่วไป

handler = FTPHandler
handler.authorizer = authorizer

server = FTPServer(("127.0.0.1", 21), handler) # กำหนดค่า Server คือ 127.0.0.1 port 21
server.serve_forever() # ทำงาน

รันแล้วเข้าไปที่ ftp://127.0.0.1:21

โมดูลนี้แม้แต่ Google ยังใช้ใน Google Chrome ครับ จะเห็นได้ว่า ภาษา Python มีการนำไปใช้ในโปรแกรมและบริการต่าง ๆ ที่ผมและผู้อ่านอาจรู้และไม่รู้อีกมาก นำไปใช้งานได้หลากหลายทางกว่าภาษาสคริปหลาย ๆ ภาษาครับ

อ่านเอกสารการใช้งานโมดูล pyftpdlib ได้ที่ http://pythonhosted.org/pyftpdlib/tutorial.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *