افتیپی ftp
کارخواه FTP و FTPS: فهرست پوشه، بارگذاری و دریافت پرونده.
واردسازی افتیپی
با این بسته به سرورهای FTP وصل میشوید؛ مثلاً برای بارگذاری سایت روی میزبانی اشتراکی یا گرفتن پروندهها از دستگاههای قدیمی. FTP ساده گذرواژه و داده را بیرمز میفرستد؛ هر جا سرور پشتیبانی میکند اتصال امن را به کار ببرید که با AUTH TLS هم فرمانها و هم داده را رمز میکند.
انتقالها در حالت غیرفعال (PASV یا EPSV) انجام میشوند که از پشت دیوار آتش هم کار میکند. روالهای تجزیه، مثل تحلیل خط فهرست، برای نوشتن ابزارهای خودتان هم در دسترساند.
گونهها
اطلاعات پرونده FileInfo
ساختار اطلاعات پرونده| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| name | name | رشته = "" | نام. |
| size | size | صحیح۶۴ | اندازه. |
| is_dir | is_dir | منطقی = نادرست | پوشه است. |
| is_link | is_link | منطقی = نادرست | پیوند است. |
| mode | mode | رشته = "" | مجوزها، مثل rw-r--r--. |
| raw_date | raw_date | رشته = "" | تاریخ همانطور که سرور نوشته. |
واردسازی افتیپی
روال ریشه:
سرچاپ افتیپی.کد پاسخ("230 Login successful.")، افتیپی.کد پاسخ("خراب")
سرچاپ افتیپی.خط پایانی است("211-Features:")، افتیپی.خط پایانی است("211 End")
سرچاپ افتیپی.تحلیل پسیو("227 Entering Passive Mode (192,168,1,10,19,137)")
سرچاپ افتیپی.تحلیل پسیو گسترده("229 Entering Extended Passive Mode (|||50000|)")
ا := افتیپی.تحلیل خط فهرست("-rw-r--r-- 1 ftp ftp 1024 Sep 30 12:00 notes.txt")
سرچاپ ا.name، ا.size، ا.is_dir، ا.is_link، ا.mode، ا.raw_date
پ := افتیپی.تحلیل خط فهرست("drwxr-xr-x 2 ftp ftp 4096 Jan 01 2026 backup")
سرچاپ پ.name، پ.is_dir
ل := افتیپی.تحلیل خط فهرست("lrwxrwxrwx 1 ftp ftp 7 Mar 03 09:15 current -> backup")
سرچاپ ل.name، ل.is_link
پایانکارخواه Client
ساختار کارخواه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| conn | conn | tcp.Conn | اتصال TCP فرمانها. |
| ok | ok | منطقی = نادرست | اتصال سالم است. |
| host | host | رشته = "" | میزبان. |
| port | port | صحیح = 21 | درگاه. |
| rxbuf | rxbuf | رشته = "" | دادهی خواندهشده. |
| last_reply | last_reply | رشته = "" | آخرین پاسخ سرور. |
| last_code | last_code | صحیح = 0 | کد آخرین پاسخ. |
| secure | secure | منطقی = نادرست | کانال فرمان رمز شده است. |
| tls_idx | tls_idx | صحیح = -1 | شمارهی اتصال TLS. |
| prot_p | prot_p | منطقی = نادرست | کانال داده هم رمز میشود. |
| tls_cfg | tls_cfg | tls.Config | پیکربندی TLS. |
واردسازی افتیپی
واردسازی تی ال اس
روال ریشه:
ناپایا ک := افتیپی.اتصال امن("ftp.example.com"، ۲۱)
اگر وارونه افتیپی.سالم(ک) یا وارونه افتیپی.ورود(ک، "ali"، "s3cret"):
سرچاپ افتیپی.آخرین کد(ک)، افتیپی.آخرین پاسخ(ک)
برگشت
پایان
سرچاپ افتیپی.امن(ک)، افتیپی.داده امن(ک)
سرچاپ افتیپی.سامانه(ک)
سرچاپ افتیپی.قابلیتها(ک)
_ := افتیپی.دودویی(ک)
سرچاپ افتیپی.مسیر جاری(ک)
_ := افتیپی.ساخت مسیر کامل(ک، "/site/assets")
_ := افتیپی.تغییر مسیر(ک، "/site")
_ := افتیپی.نوشتن(ک، "index.html"، "<h1>سلام</h1>")
_ := افتیپی.افزودن(ک، "log.txt"، "یک خط تازه\n")
سرچاپ افتیپی.خواندن(ک، "index.html")
سرچاپ افتیپی.ارسال(ک، "logo.png"، "assets/logo.png")
سرچاپ افتیپی.دریافت(ک، "log.txt"، "log-copy.txt")
هر ا در افتیپی.فهرست(ک، "."):
سرچاپ ا.name، ا.size، ا.is_dir
پایان
هر نام در افتیپی.فهرست نامها(ک، "assets"):
سرچاپ نام
پایان
سرچاپ افتیپی.فهرست خام(ک، ".").طول() > ۰
سرچاپ افتیپی.اندازه(ک، "index.html")، افتیپی.زمان تغییر(ک، "index.html")
سرچاپ افتیپی.پوشه است(ک، "assets")، افتیپی.پیوند است(ک، "current")، افتیپی.وجود دارد(ک، "old.html")
_ := افتیپی.تغییر نام(ک، "log.txt"، "log-1.txt")
_ := افتیپی.انتقال(ک، "log-1.txt"، "archive/log-1.txt")
_ := افتیپی.حذف(ک، "archive/log-1.txt")
_ := افتیپی.یک سطح بالا(ک)
_ := افتیپی.ساخت پوشه(ک، "tmp")
_ := افتیپی.حذف پوشه(ک، "tmp")
_ := افتیپی.حذف همه(ک، "/site/old")
_ := افتیپی.ارسال پوشه(ک، "public"، "/site")
_ := افتیپی.دریافت پوشه(ک، "/site"، "backup")
سرچاپ افتیپی.فرمان(ک، "SITE CHMOD 644 index.html")
سرچاپ افتیپی.بیکار(ک)
_ := افتیپی.متنی(ک)
افتیپی.خروج(ک)
افتیپی.بستن(ک)
ناپایا س := افتیپی.اتصال("ftp.example.com"، ۲۱)
سرچاپ افتیپی.احراز تیالاس(س)
ناپایا پ := تی ال اس.پیکربندی جدید("ftp.example.com")
پ.ca_file = "company-ca.pem"
ناپایا ب := افتیپی.اتصال امن با تنظیمات("ftp.example.com"، ۲۱، پ)
ناپایا د := افتیپی.اتصال("ftp.example.com"، ۲۱)
سرچاپ افتیپی.ارتقا به تیالاس(د، پ)
افتیپی.بستن(س)
افتیپی.بستن(ب)
افتیپی.بستن(د)
پایانروالها
اتصال Dial
روال اتصال(host: رشته، port: صحیح): کارخواهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ارتقا به تیالاس AuthTLSWith
روال ارتقا به تیالاس(c &: کارخواه، cfg: tls.Config): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
احراز تیالاس AuthTLS
روال احراز تیالاس(c &: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
اتصال امن DialTLS
روال اتصال امن(host: رشته، port: صحیح): کارخواهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
اتصال امن با تنظیمات DialTLSWith
روال اتصال امن با تنظیمات(host: رشته، port: صحیح، cfg: tls.Config): کارخواهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
امن Secure
روال امن(c: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
داده امن SecureData
روال داده امن(c: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ورود Login
روال ورود(c &: کارخواه، user: رشته، password: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
خروج Quit
روال خروج(c &: کارخواه)نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
بستن Close
روال بستن(c &: کارخواه)نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
سالم Ok
روال سالم(c: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
آخرین پاسخ LastReply
روال آخرین پاسخ(c: کارخواه): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
آخرین کد LastCode
روال آخرین کد(c: کارخواه): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
فرمان Command
روال فرمان(c &: کارخواه، line: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
بیکار Noop
روال بیکار(c &: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
سامانه System
روال سامانه(c &: کارخواه): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
قابلیتها Features
روال قابلیتها(c &: کارخواه): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
دودویی Binary
روال دودویی(c &: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
متنی Ascii
روال متنی(c &: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
مسیر جاری Pwd
روال مسیر جاری(c &: کارخواه): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
تغییر مسیر Cwd
روال تغییر مسیر(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
یک سطح بالا CdUp
روال یک سطح بالا(c &: کارخواه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ساخت پوشه Mkdir
روال ساخت پوشه(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
حذف پوشه Rmdir
روال حذف پوشه(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ساخت مسیر کامل MkdirAll
روال ساخت مسیر کامل(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
فهرست خام ListRaw
روال فهرست خام(c &: کارخواه، path: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
فهرست List
روال فهرست(c &: کارخواه، path: رشته): وکتور<اطلاعات پرونده>نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam
فهرست نامها NameList
روال فهرست نامها(c &: کارخواه، path: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
اندازه Size
روال اندازه(c &: کارخواه، path: رشته): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
زمان تغییر ModTime
روال زمان تغییر(c &: کارخواه، path: رشته): رشتهYYYYMMDDHHMMSS.نمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
پوشه است IsDir
روال پوشه است(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
پیوند است IsLink
روال پیوند است(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
وجود دارد Exists
روال وجود دارد(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
خواندن Read
روال خواندن(c &: کارخواه، remote: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
نوشتن Write
روال نوشتن(c &: کارخواه، remote: رشته، data: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
افزودن Append
روال افزودن(c &: کارخواه، remote: رشته، data: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
دریافت Download
روال دریافت(c &: کارخواه، remote: رشته، local: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ارسال Upload
روال ارسال(c &: کارخواه، local: رشته، remote: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
حذف Delete
روال حذف(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
تغییر نام Rename
روال تغییر نام(c &: کارخواه، from_path: رشته، to_path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
انتقال Move
روال انتقال(c &: کارخواه، from_path: رشته، to_path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
حذف همه RemoveAll
روال حذف همه(c &: کارخواه، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
دریافت پوشه DownloadDir
روال دریافت پوشه(c &: کارخواه، remote: رشته، local: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
ارسال پوشه UploadDir
روال ارسال پوشه(c &: کارخواه، local: رشته، remote: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Client.salam
کد پاسخ ReplyCode
روال کد پاسخ(line: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam
خط پایانی است IsFinalLine
روال خط پایانی است(line: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam
تحلیل پسیو ParsePasv
روال تحلیل پسیو(reply: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam
تحلیل پسیو گسترده ParseEpsv
روال تحلیل پسیو گسترده(reply: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam
تحلیل خط فهرست ParseListLine
روال تحلیل خط فهرست(line: رشته): اطلاعات پروندهنمونهی این مورد همراه با موارد بالاتر آمده است: ftp-Parse.salam