यह सोचना अजीब है कि फाइल ट्रांसफर प्रोटोकॉल ( FTP
) कितने समय से मौजूद है। पहली बार 1971 में MIT के छात्र अभय भूषण द्वारा विकसित किया गया था, शुरुआत में इसका उपयोग ARPANET पर कंप्यूटरों के बीच फ़ाइलों को स्थानांतरित करने के लिए किया गया था। यह कहने की आवश्यकता नहीं है कि यह विकसित हुआ - प्रमाणीकरण, एन्क्रिप्शन और संपीड़न सुविधाओं के साथ। यह इंटरनेट पर फ़ाइलों को स्थानांतरित करने के लिए व्यापक रूप से उपयोग किया जाने वाला प्रोटोकॉल है, खासकर ऐसे मामलों में जहां बड़ी फ़ाइलों या बड़ी संख्या में फ़ाइलों को जल्दी और विश्वसनीय रूप से स्थानांतरित करने की आवश्यकता होती है।
जबकि S3 API मौलिक रूप से बेहतर है, इसमें FTP/SFTP
की सरलता और अत्यधिक प्रतिबंधित वातावरण में चलने की क्षमता का अभाव है। परिणामस्वरूप, मिनिओ ने मिनियो सर्वर में FTP
और SFTP
के लिए समर्थन जोड़ा है। इस नई कार्यक्षमता के साथ, उपयोगकर्ता (या एप्लिकेशन) सोचता है कि वे एक FTP
सर्वर से बात कर रहे हैं जबकि वास्तव में वे मिनिआईओ से बात कर रहे हैं। फायदे स्पष्ट होने चाहिए - डेटा को मिनिओ पर ले जाना निर्बाध हो जाता है और एप्लिकेशन/उपयोगकर्ता के नजरिए से सब कुछ अनिवार्य रूप से समान है - नीतियों, सुरक्षा आदि से।
वर्तमान में समर्थित FTP/SFTP
संचालन इस प्रकार हैं:
एफ़टीपी-क्लाइंट कमांड | का समर्थन किया |
---|---|
पाना | हाँ |
रखना | हाँ |
रास | हाँ |
mkdir | हाँ |
rmdir | हाँ |
मिटाना | हाँ |
संलग्न | नहीं |
नाम बदलने | नहीं |
मिनिआईओ डेटा तक पहुंचने और प्रबंधित करने के लिए निम्नलिखित FTP/SFTP
आधारित प्रोटोकॉल का समर्थन करता है।
सिक्योर फाइल ट्रांसफर प्रोटोकॉल ( SFTP
) - इंटरनेट इंजीनियरिंग टास्क फोर्स (आईईटीएफ) द्वारा एसएसएच 2.0 के विस्तारित संस्करण के रूप में परिभाषित किया गया है, जो एसएसएच पर फाइल ट्रांसफर और ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) और वीपीएन अनुप्रयोगों के साथ उपयोग की अनुमति देता है।
एसएसएल/टीएलएस ( FTPS
) पर फ़ाइल ट्रांसफर प्रोटोकॉल - टीएलएस प्रमाणपत्रों के माध्यम से एन्क्रिप्टेड FTP
संचार।
फ़ाइल स्थानांतरण प्रोटोकॉल ( FTP
) - मूल रूप से आरएफसी114 द्वारा परिभाषित, और आरएफसी765 और आरएफसी959 अनएन्क्रिप्टेड एफ़टीपी संचार द्वारा प्रतिस्थापित किया गया
इस रिलीज़ में क्या शामिल है:
रोटेटिंग क्रेडेंशियल्स को छोड़कर सभी IAM क्रेडेंशियल्स को एक्सेस की अनुमति है, रोटेटिंग क्रेडेंशियल्स को FTP/SFTP
पोर्ट के माध्यम से लॉगिन करने की अनुमति नहीं है। यदि आप रोटेटिंग क्रेडेंशियल्स का उपयोग कर रहे हैं तो आपको S3 API पोर्ट का उपयोग करना होगा।
बकेट और ऑब्जेक्ट तक पहुंच आने वाले लॉगिन क्रेडेंशियल से जुड़ी IAM नीतियों के माध्यम से नियंत्रित होती है।
सभी के लिए प्रमाणीकरण और पहुंच की अनुमति देता है
संस्करणित बकेट पर, FTP/SFTP
केवल नवीनतम ऑब्जेक्ट पर काम करता है। यदि आपको पुराने संस्करण को पुनः प्राप्त करने की आवश्यकता है तो आपको mc
जैसे S3 API client
उपयोग करना होगा।
आपके बकेट द्वारा वर्तमान में उपयोग की जाने वाली सभी सुविधाएँ बिना किसी बदलाव के "जैसा है" वैसे ही काम करेंगी
-एसएसई (सर्वर साइड एन्क्रिप्शन)
-प्रतिकृति (सर्वर साइड प्रतिकृति)
अनिवार्य रूप से, यह डेवलपर/प्रशासक के दृष्टिकोण से एक निर्बाध प्रोटोकॉल जोड़ होना चाहिए।
यह कार्यक्षमता RELEASE.2023-04-20T17-56-55Z
से प्रारंभ होकर उपलब्ध है।
यह माना जाता है कि उपयोगकर्ताओं को प्रासंगिक पहुंच नीतियों के साथ पहले ही बनाया और कॉन्फ़िगर किया जा चुका है। मिनिआईओ एक उपयोगकर्ता के लिए किस स्तर के प्रतिबंधों की आवश्यकता है, इसे अंतिम रूप देने से पहले सभी परिचालनों का परीक्षण करने के लिए एक बुनियादी "रीडराइट" डिब्बाबंद नीति से शुरुआत करने की सलाह देता है।
बकेट और ऑब्जेक्ट तक FTP/SFTP
पहुंच के लिए कोई "एडमिन:*" ऑपरेशन आवश्यक नहीं है। प्रतिबंधों के कारण उन्हें छोड़ा जा सकता है।
महत्वपूर्ण नोट: FTP/SFTP
डिफ़ॉल्ट रूप से सक्षम नहीं है। इसे सेटअप पर सक्षम करने की आवश्यकता है. इसके अलावा, FTP
के माध्यम से कोई व्यवस्थापक कार्यक्षमता उपलब्ध नहीं है, यह कमांड लाइन के माध्यम से किया जाना चाहिए।
FTP/SFTP
सक्षम होने के साथ, वितरित सेटअप में MiniIO प्रारंभ करें।
minio server http://server{1...4}/disk{1...4} --ftp="address=:8021" --ftp="passive-port-range=30000-40000" \ --sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa" ... ...
निम्नलिखित उदाहरण minioadmin
क्रेडेंशियल्स का उपयोग करके ftp
क्लाइंट के माध्यम से कनेक्ट करना दिखाता है, और runner
नामक एक बकेट को सूचीबद्ध करता है:
ftp localhost -P 8021 Connected to localhost. 220 Welcome to MinIO FTP Server Name (localhost:user): minioadmin 331 User name ok, password required Password: 230 Password ok, continue Remote system type is UNIX. Using binary mode to transfer files. ftp> ls runner/ 229 Entering Extended Passive Mode (|||39155|) 150 Opening ASCII mode data connection for file list drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 chunkdocs/ drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 testdir/ ...
निम्नलिखित उदाहरण दिखाता है कि किसी ऑब्जेक्ट को कैसे सूचीबद्ध किया जाए और उसे ftp
क्लाइंट के माध्यम से स्थानीय रूप से कैसे डाउनलोड किया जाए:
ftp> ls runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||44269|) 150 Opening ASCII mode data connection for file list -rwxrwxrwx 1 nobody nobody 45 Apr 1 06:13 chunkdocs/metadata 226 Closing data connection, sent 75 bytes ftp> get (remote-file) runner/chunkdocs/metadata (local-file) test local: test remote: runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||37785|) 150 Data transfer starting 45 bytes 45 3.58 KiB/s 226 Closing data connection, sent 45 bytes 45 bytes received in 00:00 (3.55 KiB/s) ...
यदि सर्वर पर प्रमाणपत्र सक्षम हैं, तो SFTP
उपयोग किया जा सकता है। बशर्ते FTP
क्लाइंट सक्षम हो, ट्रांसमिशन को सुरक्षित करने के लिए टीएलएस का उपयोग किया जा सकता है। इसके लिए निजी कुंजी के लिए एक अतिरिक्त ध्वज की आवश्यकता होगी।
निम्न उदाहरण minioadmin
क्रेडेंशियल्स का उपयोग करके sftp
क्लाइंट के माध्यम से कनेक्ट करना दिखाता है, और runner
नामक एक बकेट को सूचीबद्ध करता है:
sftp -P 8022 minioadmin@localhost minioadmin@localhost's password: Connected to localhost. sftp> ls runner/ chunkdocs testdir
निम्नलिखित उदाहरण दिखाता है कि sftp
क्लाइंट के माध्यम से किसी ऑब्जेक्ट को स्थानीय रूप से कैसे डाउनलोड किया जाए:
sftp> get runner/chunkdocs/metadata metadata Fetching /runner/chunkdocs/metadata to metadata metadata 100% 226 16.6KB/s 00:00 sftp>
डिफ़ॉल्ट पोर्ट 8021
को इसके माध्यम से बदला जा सकता है
--ftp="address=:3021"
डिफ़ॉल्ट रूप से FTP
अनुरोध करता है कि ओएस स्वचालित रूप से एक मुफ्त पोर्ट प्रदान करता है, हालाँकि आप इसे कुछ प्रतिबंधित वातावरणों में विशिष्ट पोर्ट तक सीमित करना चाह सकते हैं
--ftp="passive-port-range=30000-40000"
डिफ़ॉल्ट पोर्ट 8022
को इसके माध्यम से बदला जा सकता है
--sftp="address=:3022"
SFTP
सर्वर के विपरीत, FTP
सर्वर डिफ़ॉल्ट रूप से असुरक्षित है। टीएलएस मोड के तहत काम करने के लिए, आपको प्रमाणपत्र प्रदान करना होगा
--ftp="tls-private-key=path/to/private.key" --ftp="tls-public-cert=path/to/public.crt"
ध्यान दें : यदि मिनिओ वितरित सेटअप पहले से ही टीएलएस के तहत चलाने के लिए कॉन्फ़िगर किया गया है, FTP
स्वचालित रूप से सर्वर प्रमाणपत्र श्रृंखला से संबंधित प्रमाणपत्रों का उपयोग करेगा, यह मुख्य रूप से सेटअप की सादगी को जोड़ने के लिए है। हालाँकि यदि आप अपने FTP
सर्वर के लिए एक अलग डोमेन के माध्यम से टीएलएस प्रमाणपत्र समाप्त करना चाहते हैं तो आप उपरोक्त कमांड लाइन विकल्प चुन सकते हैं।
हमने पहले नोट किया था कि जोड़ें और नाम बदलें समर्थन फ़ंक्शन नहीं हैं।
FTP
की सरलता को देखते हुए - संस्करणीकरण भी समस्याग्रस्त है। वर्जनिंग FTP
द्वारा समर्थित नहीं है और FTP
क्लाइंट नहीं जानते कि यह वास्तव में क्या है - लेकिन बकेट में आम तौर पर किसी ऑब्जेक्ट के कई संस्करण होंगे। परिणामस्वरूप, नए नाम वाली वही वस्तु एक नई वस्तु होगी। समान नाम वाली वही वस्तु एक नया संस्करण होगी - लेकिन FTP
के पास इसकी कोई अवधारणा नहीं है, इसे S3 के माध्यम से प्रबंधित करने की आवश्यकता है। यह डेटा को स्थानांतरित कर सकता है, लेकिन इसमें कुछ अवधारणाओं को समझने के लिए S3 का परिष्कार नहीं है।
अंत में, जैसा कि उल्लेख किया गया है, FTP
पर कोई व्यवस्थापक फ़ंक्शन उपलब्ध नहीं हैं।
FTP/SFTP
असाधारण रूप से लंबे समय तक चलने वाले प्रोटोकॉल हैं और वे 50 के दशक में भी नए उपयोग के मामले और उपयोगिता ढूंढते रहते हैं। हमने MinIO में डेटा प्राप्त करने और उसे बाहर निकालने के लिए FTP
उपयोग करना सरल बना दिया है।
इससे भी महत्वपूर्ण बात यह है FTP/SFTP
कार्यक्षमता आपके मौजूदा मिनियो परिनियोजन के साथ निर्बाध रूप से काम करेगी - बस अपग्रेड करें और आपको मिनियो बकेट में वह सारा डेटा फीड करें जो आपको पहले मिनियो में बदलना था।
हमारे पास यहां इस विषय पर एक बेहतरीन वीडियो है। हमारा GitHub पेज यहां है। हम यहां समुदाय का समर्थन करने के लिए उपलब्ध हैं और जाहिर है, यदि आप एक वाणिज्यिक ग्राहक हैं तो आप हमें SUBNET पर 24/7/365 पर पा सकते हैं।
यहाँ भी प्रकाशित किया गया है.