Làm thế nào để upload lên FTP bằng mã nguồn Python? Trong bài viết này sẽ chia sẻ với các bạn mã nguồn upload FTP.
Mới đây, mình vừa làm một dự án web scraping mà scraper được triển khai trên nhiều máy chủ khác nhau (8 máy chủ). Vì vậy, dữ liệu lấy được phân tán trên 8 máy chủ này. Trong khi đó, khách hàng thì không thành thạo môi trường Linux lắm nền yêu cầu đặt ra là phải có giải pháp tập trung các kết quả để khách hàng dễ dàng tải về.
Với yêu cầu như trên, mình đã đề xuất và áp dụng việc tự động tải dữ liệu lấy được lên 1 máy chủ FTP. Trong dự án này, mình đã sử dụng thư viện ftplib. Đây là thư viện sẵn có trong Python3. Hãy xem cách sử dụng thư viện ftplib
Dưới đây là mã nguồn Python để upload lên FTP server mà mình đã sử dụng,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from ftplib import FTP import os HOST= "FTP Server IP" #112.78.32.11 USERNAME = "your ftp account" # Ftp user name PASSWD = "your fpt password" # ftp password LOCAL_FILE = 'file path need to upload' #path to file need to be uploaded ftp = FTP() ftp.set_debuglevel(2) ftp.connect(HOST, 21) ftp.login(USERNAME,PASSWD) ftp.cwd('/files') fp = open(LOCAL_FILE, 'rb') ftp.storbinary('STOR {}'.format(os.path.basename(LOCAL_FILE)), fp, 1024) fp.close() |
Mời các bạn tham khảo nhé !
Mình là một lập trình viên tự do với hơn 10 năm kinh nghiệm. Mình chuyên về Web scraping, Web automation, Python, Django
trường hợp download thì làm sao a?
Hi Cường,
Việc download thì dùng request đơn giản thôi. Bạn tham khảo ở đây: https://stackoverflow.com/questions/11768214/python-download-a-file-over-an-ftp-server/12424311
Trường hợp em thử với 1 file video nặng, bị timeout liên tục thì xử lý sao ạ
E có thể thử tăng thời gian timeout để upload file lớn. Tham khảo ở đây: https://stackoverflow.com/questions/29374636/set-timeout-for-ftp-connection-in-python-with-ftplib