انتقال فایل از یک سرور به سرور دیگر به کمک FTP
از مهمترین پروتکلهای انتقال اطلاعات FTP است که با پورت 21 آن را میشناسند. این پروتکل مخفف کلمهی File Transfer Protocol است. در این نوشته به روش انتقال فایل با کمک پروتکل FTP از یک سرور به سرور دیگر به کمک زبان برنامه نویسی پایتون میپردازیم.
انتقال فایل از یک سرور به سرور دیگر به کمک FTP
برای انتقال فایل ها از یک سرور به سرور دیگر به کمک پروتکل FTP از قطعه کد زیر استفاده کنید:
from ftplib import FTP
ftp_source_host = 'ftp.test.com'
ftp_source_user = 'username'
ftp_source_pass = 'password'
ftp_dest_host = 'ftp.test2.com'
ftp_dest_user = 'username'
ftp_dest_pass = 'password'
filename = 'file.zip'
with FTP(ftp_source_host) as ftp:
ftp.login(user=ftp_source_user, passwd=ftp_source_pass)
with open(filename, 'wb') as f:
ftp.retrbinary(f'RETR {filename}', f.write)
print(f'File {filename} downloaded from source FTP.')
with FTP(ftp_dest_host) as ftp:
ftp.login(user=ftp_dest_user, passwd=ftp_dest_pass)
with open(filename, 'rb') as f:
ftp.storbinary(f'STOR {filename}', f)
print(f'File {filename} uploaded to destination FTP.')
اگر نیاز به آموزشهای بیشتری در زمینهی زبان برنامه نویسی پایتون دارید در بخش نظرات این نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]



















فرق اصلی بین پورت 21 و پورت 22 دقیقا چیه؟
پورت 21 برای FTP معمولیه و دادهها رمزنگاری نمیشن. پورت 22 مربوط به SSH و برای SFTP استفاده میشه که انتقال دادهها رو امن و رمزنگاریشده میکنه.
تو سرورهایی که فقط کلید عمومی دارن چطور باید وصل بشیم؟
در این حالت باید کلید خصوصی خودتون رو روی کلاینت داشته باشید و با ابزارهایی مثل sftp یا scp وصل بشید. نیازی به پسورد نیست.
برای سرعت بیشتر میشه چند فایل رو موازی با هم منتقل کرد؟
بله. با ابزارهایی مثل lftp یا rsync میشه انتقال چند کانکشنی انجام داد تا سرعت کلی بیشتر بشه.
از لحاظ امنیتی بهتر نیست به جای FTP از SFTP یا FTPS استفاده کنیم؟
قطعاً. چون FTP قدیمی و ناامن هست، استفاده از SFTP یا FTPS به خاطر رمزنگاری ارتباط توصیه میشه.
انتقال مستقیم بین دو سرور بدون ذخیره موقت روی لوکال هم با FTP امکانپذیره؟
بله، به این روش FXP میگن. البته باید هر دو سرور از این قابلیت پشتیبانی کنن و از نظر امنیتی بهتره از SFTP استفاده بشه.