وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

مقدمه ای بر Python FTP

0 5
زمان لازم برای مطالعه: 4 دقیقه


معرفی

در این آموزش روش استفاده را بررسی خواهیم کرد FTP با پایتون برای ارسال و دریافت فایل ها از یک سرور TCP/IP اتصالات

برای ساده‌تر و انتزاعی‌تر کردن کارها، از Python استفاده می‌کنیم ftplib کتابخانه ای که طیف وسیعی از عملکردها را فراهم می کند که کار با FTP را آسان تر می کند. ما شاهد اجرای آپلود و دانلود فایل ها از سرور و همچنین برخی از کارهای جالب دیگر خواهیم بود که “ftplib” به ما اجازه انجام آن را می دهد.

FTP چیست؟

FTP مخفف File Transfer Protocol است. مبتنی است روی معماری مدل مشتری-سرور است و به طور گسترده استفاده می شود. دو کانال دارد. یک کانال فرمان و یک کانال داده. کانال فرمان برای کنترل ارتباطات و کانال داده برای انتقال واقعی فایل ها استفاده می شود. طیف گسترده ای از کارها وجود دارد که می توانید با استفاده از FTP انجام دهید، مانند جابجایی، دانلود، کپی کردن فایل ها، و غیره. روی چگونه با استفاده از پایتون این کار را انجام دهیم.

کار با FTP در پایتون

در حال حرکت روی، خوشحال می شوید که بدانید ftplib یک کتابخانه داخلی است که قبلاً با پایتون نصب شده است، تنها کاری که باید انجام دهید این است import آن را در اسکریپت خود قرار دهید و می توانید شروع به استفاده از توابع آن کنید. به import آن را از دستور زیر استفاده کنید:

from ftplib import FTP

پس از آن، باید یک اتصال به سرور FTP را که می‌خواهیم یک پیوند ارتباطی با آن باز کنیم، شروع کنیم. برای انجام این کار، ایجاد کنید ftp نمونه، مثال:


ftp = FTP('ftp.example.com')

روش فوق از پورت پیش فرض یعنی پورت 21 برای برقراری ارتباط با سرور استفاده می کند. گام بعدی این است که برای دسترسی به فایل‌ها، اطلاعات ورود به سیستم، یعنی نام کاربری و رمز عبور خود را ارائه دهید. روی سرور. برای آن می توانید از روش زیر استفاده کنید:

ftp.login('your_username','your_password')

مقادیر پیش‌فرض نام کاربری و رمز عبور به ترتیب «ناشناس» و «ناشناس@» هستند. در صورت موفقیت آمیز بودن اتصال، باید پیامی مشابه «230 Login Successful» دریافت کنید.

پیشنهاد می‌کنیم بخوانید:  برنامه نویسی پایتون در حالت تعاملی در مقابل اسکریپت

اکنون که یک اتصال به سرور برقرار کرده‌ایم، می‌خواهیم به دایرکتوری که می‌خواهیم در آن عملیات انجام دهیم، یعنی دریافت یا نوشتن یک فایل در آن، برویم. برای این کار، «دایرکتوری فعلی کار» را با استفاده از دستور زیر تغییر می‌دهیم:

ftp.cwd('/path/to/the/directory/')

بیایید اکنون چند مثال اساسی از روش دریافت فایل از یک دایرکتوری یا نوشتن یک فایل در یک دایرکتوری را مورد بحث قرار دهیم. توضیح کد در نظرات در کنار هر خط کد ارائه شده است:

file_name = 'a-filename.txt'
my_file = open(file_name, 'wb') 
ftp.retrbinary('RETR ' + file_name, my_file.write, 1024) 

در retrbinary 1024 به این معنی است که فایل در بلوک های 1024 بایتی دانلود می شود تا زمانی که کل فایل منتقل شود.

یک کار دیگر وجود دارد که باید بعد از دانلود یا آپلود یک فایل انجام دهید – آن فایل را ببندید و همچنین اتصال FTP را که باز کرده بودید ببندید. می توانید این کار را برای مثال بالا با دو خط کد زیر انجام دهید:

ftp.quit() 
my_file.close() 

حالا بیایید سعی کنیم یک فایل را در سرور آپلود کنیم. علاوه بر دستورات زیر، باید دستوراتی را که در بالا برای باز کردن اتصال FTP استفاده کردیم، بازنویسی کنید.

file_name = 'a-filename.txt'
ftp.storbinary('STOR ' + file_name, open(file_name, rb))

در مثال های بالا، ‘rb’ و ‘wb’ به ترتیب به معنای “خواندن باینری” و “نوشتن باینری” هستند.

عملکردهای اضافی FTP

اکنون که پیاده‌سازی ویژگی‌های اصلی را مورد بحث قرار داده‌ایم، اجازه دهید برخی از عملکردهای اضافی را ببینیم ftplib در اختیار ما قرار می دهد.

لیست فایل ها و فهرست ها

برای مشاهده فایل‌ها و پوشه‌ها در فهرست کاری فعلی خود، در قالب لیست، آن را اجرا کنید retrlines دستور:

ftp.retrlines('LIST')

دایرکتوری جدید بسازید

به منظور سازماندهی فایل های خود به شیوه ای خاص، ممکن است نیاز به ایجاد یک دایرکتوری جدید را احساس کنید روی سرور، که می توانید با استفاده از یک خط کد انجام دهید:

ftp.mkd('/path/for/the/directory')

مسیر مکانی است که می خواهید دایرکتوری جدید در آن قرار گیرد.

پیشنهاد می‌کنیم بخوانید:  برنامه های تک صفحه ای با Vue.js و Flask: مدیریت ایالت با Vuex. از اینکه برای پست سوم به من پیوستید متشکریم روی استفاده از Vue.js و Flask برای توسعه وب تمام پشته. موضوع اصلی در این پست خواهد بود روی با استفاده از Vuex برای مدیریت وضعیت در برنامه ما. برای معرفی Vuex، روش بازسازی کامپوننت های Home و Survey را از...

یک فایل را از سرور حذف کنید

حذف یک فایل روی سرور نسبتاً ساده است، فقط باید نام فایل را به عنوان پارامتر به تابع حذف بدهید. موفقیت یا شکست عملیات با یک پیام پاسخ منتقل می شود.

ftp.delete('file_name_to_delete')

مسیر فعلی را بررسی کنید

برای بررسی مسیر فعلی خود کافی است کد زیر را اجرا کنید:

ftp.pwd()

این دستور مسیر مطلق را به دایرکتوری فعلی برمی گرداند.

احتیاط

توجه به این نکته مهم است که در حالی که FTP به خودی خود کاملاً ایمن است، معمولاً برای انتقال اطلاعات حساس استفاده نمی شود. اگر چیزی شبیه به آن را انتقال می دهید، باید به سراغ گزینه های امن تری مانند SFTP (FTP امن) یا SSH (پوسته امن). اینها رایج ترین پروتکل های مورد استفاده برای مدیریت انتقال داده های حساس هستند.

نتیجه

در این پست به کمک مثال های مختلف بحث کردیم که FTP چیست و چگونه کار می کند. ما همچنین روش استفاده از ماژول “ftplib” پایتون برای برقراری ارتباط با یک سرور راه دور با استفاده از FTP را دیدیم و برخی از عملکردهای دیگر را دیدیم که ماژول ارائه می دهد. در پایان، ما همچنین چند جایگزین امن تر برای FTP، مانند SFTP و SSH که برای انتقال اطلاعات حساس استفاده می شود، مورد بحث قرار دادیم.

برای اطلاعات بیشتر روی با استفاده از FTP با پایتون، به the اسناد رسمی ftplib یا RFC 959.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-24 05:09:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید