আপনি একটি এফটিপি সার্ভার পাইফটপিডিলিব ব্যবহার করে এক দুই তিনের মতো সহজ হয়ে উঠতে পারেন :
- পিপ দিয়ে ইনস্টল করুন
pip install --user pyftpdlib
- সাথে চালান
python -m pyftpdlib
, -w
আপনি লেখার অ্যাক্সেসও চাইলে যুক্ত করুন ।
- তিন ধাপ নেই :)
আপনার এখন একটি এফটিপি সার্ভার রয়েছে যা আপনি বেনামে আপনার হোম ডিরেক্টরিটি ভাগ করে নিতে লগ ইন করতে পারেন। এটি মডিউলটির পরীক্ষা হিসাবে আরও বোঝানো হয়েছে, তবে এটি টিনে যা বলেছে তা করে।
এই আদেশ:
python -m pyftpdlib --directory=FTP --port=2121 --write
2121 পোর্টে মূল অধিকার ছাড়াই পরিবেশন করবে এবং বেনামী ব্যবহারকারীদের লেখার প্রবেশাধিকার দেবে। এটি FTP
আপনার বাড়ির পরিবর্তে বর্তমান কার্যক্ষম ডিরেক্টরিতে ডিরেক্টরিটিও ব্যবহার করবে । python ftpserver.py --help
সমস্ত অপশন সম্পর্কে তথ্য পেতে টাইপ করুন।
- এটিতে লগ ইন করুন
anonymous@localhost:2121/
দয়া করে নোট করুন যে এই সফ্টওয়্যারটি এমআইটি লাইসেন্সের শর্তাবলীতে প্রকাশিত হয়েছে যার অর্থ আপনি এটির মাধ্যমে যা করতে পারেন তা মূলত আপনি করতে পারেন। লাইসেন্সের পাঠ্যটি পড়ুন, এটি কেবল কয়েকটি লাইন এবং আপনার অধিকারগুলি জানে।
এখন, এই স্ক্রিপ্টটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডটিকে একা একা কার্যকারিতা হিসাবে সুরক্ষা দেয় না (সুরক্ষার কারণে আমি কল্পনা করি)।
সুতরাং আমি এই বৈশিষ্ট্য যুক্ত করেছি:
আপনার এখন, আমি উল্লিখিত সমস্ত বিকল্প ছাড়াও কমান্ড লাইন পরামিতি
--username=USERNAME
এবং --password=PASSWORD
:
python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j
আবার, --help
তাদের সমস্ত দেখতে ব্যবহার করুন।
এটি যতটা সহজ হয় তত সহজ হওয়া উচিত।
আমি এর জন্য একটু গুই লিখেছি:
এটি এখানে ডাউনলোড করুন (পুনর্বিবেচনা 6 এ আপডেট হয়েছে )
আমি দুঃখিত এটি 3999 লাইন দীর্ঘ, তবে এটি আসল যা করে তা সবই করবে। এবং আমি এটি সব একটি ফাইলে রাখতে চেয়েছিলাম। এটি কোনও পরামিতি ছাড়াই শুরু করা হয় (অর্থাত্ এটি কার্যকরকরণযোগ্য করুন এবং এটিতে ডাবল ক্লিক করুন, বা এর জন্য একটি লঞ্চার তৈরি করুন ), আপনার সার্ভারটি কনফিগার করার জন্য এটি একটু গুই শুরু করে। আপনি এখনও এটি পাইথন মডিউল হিসাবে আমদানি করতে পারেন বা উপরের কমান্ড লাইন ফু ব্যবহার করতে পারেন।
জ্ঞাত সমস্যা:
আমি 2121 পোর্ট ব্যতীত অন্য কোনও বিষয় নিয়ে মাথা ঘামাইনি। এটি সাধারণ হওয়া উচিত, বন্দরটি কনফিগারযোগ্য করার জন্য জটিল ত্রুটি পরিচালনার প্রয়োজন হয় যা আমি ব্যবহারকারীকে বিরক্ত করতে চাই না। 2121 সর্বদা সূক্ষ্ম কাজ করা উচিত।
কমান্ড লাইনের মতো এটি কোনও সুরক্ষিত কনফিগারেশন ব্যবহারের বিষয়ে আপনাকে সতর্ক করবে না। অর্থাত্ একটি পাসওয়ার্ড বা সে জাতীয় কিছু সেট করা নেই।
সম্পাদনা: যেহেতু এর API pyftpdlib
এবং ftpserver.py
পরিবর্তিত হয়েছে (এবং উবুন্টু পেস্টবিনের লিঙ্কগুলি চলে গেছে); উপরের পোস্টটির বেশিরভাগই আর কাজ করে না। (2014) সংস্করণের জন্য pyftpdlib
, ftpserver-cli.py
উপরের মতোটি অর্জন করতে এই স্ক্রিপ্টটি ( ) ব্যবহার করুন :
#!/usr/bin/env python
# ftpserver-cli.py
import sys
sys.path.append("/path/to/pyftpdlib-svn") # enter your proper path here
import argparse
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
def processCmdLineOptions():
global optparser
optparser = argparse.ArgumentParser(description="ftpserver-cli",
formatter_class=argparse.RawDescriptionHelpFormatter)
optparser.add_argument('-u', '--username', action='store', type=str,
default="user", help="username")
optparser.add_argument('-p', '--password', action='store', type=str,
default="12345", help="password")
optparser.add_argument('-t', '--port', action='store', type=int,
default="21", help="port")
optparser.add_argument('-d', '--directory', action='store', type=str,
default="/home/stefano/Projekte/", help="port")
optargs = optparser.parse_args(sys.argv[1:]) #(sys.argv)
return optargs
optargs = processCmdLineOptions()
print("Using: user: %s pass: %s port: %d dir: %s" % (optargs.username, optargs.password, optargs.port, optargs.directory))
authorizer = DummyAuthorizer()
authorizer.add_user(optargs.username, optargs.password, optargs.directory, perm="elradfmw")
#authorizer.add_anonymous("/home/nobody")
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(("127.0.0.1", optargs.port), handler)
server.serve_forever()
সাথে কল:
$ sudo python ftpserver-cli.py --directory=/tmp/srvtest
Using: user: user pass: 12345 port: 21 dir: /tmp/srvtest
[I 14-03-02 21:40:57] >>> starting FTP server on 127.0.0.1:21, pid=19286 <<<
...