अमेज़ॅन S3 बाल्टी में एफ़टीपी / एसएफटीपी पहुंच [बंद]


146

क्या एडब्ल्यूएस कंसोल में अंतर्निहित अमेज़ॅन फ़ाइल स्थानांतरण इंटरफ़ेस के बजाय एफ़टीपी या एसएफटीपी के साथ अमेज़ॅन एस 3 बाल्टी से कनेक्ट करने का एक तरीका है? अजीब लगता है कि यह आसानी से उपलब्ध विकल्प नहीं है।


2
नवंबर, 2018 में जारी एडब्ल्यूएस पूरी तरह से एसएफटीपी सेवा को प्रबंधित करता है जो फाइलों को अमेज़ॅन एस 3 से सीधे और बाहर स्थानांतरित करने में सक्षम बनाता है। एसएफटीपी के लिए एडब्ल्यूएस ट्रांसफर
मितका

जवाबों:


100

तीन विकल्प हैं।

  • आप हाल ही में अमेज़न द्वारा जोड़े गए एक देशी प्रबंधित SFTP सेवा का उपयोग कर सकते हैं (जो स्थापित करना आसान है)।
  • या फिर आप एक लिनक्स सर्वर पर एक फाइल सिस्टम के लिए बाल्टी माउंट और सर्वर पर किसी अन्य फ़ाइलों के रूप में SFTP (जो आप अधिक से अधिक नियंत्रण देता है) का उपयोग फ़ाइलों को एक्सेस कर सकते हैं।
  • या आप बस (GUI) क्लाइंट का उपयोग कर सकते हैं जो मूल रूप से S3 प्रोटोकॉल (क्या मुफ्त है) का समर्थन करता है।

प्रबंधित SFTP सेवा

  • अपने अमेज़न एडब्ल्यूएस कंसोल में, करने के लिए जाना SFTP के लिए एडब्ल्यूएस स्थानांतरण और एक नया सर्वर बनाएँ।

  • SFTP सर्वर पृष्ठ में, एक नया SFTP उपयोगकर्ता (या उपयोगकर्ता) जोड़ें।

    • उपयोगकर्ताओं की अनुमतियां IAM सेवा में संबद्ध AWS भूमिका द्वारा नियंत्रित होती हैं (त्वरित शुरुआत के लिए, आप AmazonS3FullAccess नीति का उपयोग कर सकते हैं )।

    • भूमिका में विश्वास संबंध होना चाहिए transfer.amazonaws.com

जानकारी के लिए, मेरे मार्गदर्शक देख अमेज़न S3 के लिए एक SFTP पहुंच सेट कर


लिनक्स सर्वर के लिए बढ़ते बाल्टी

बस s3fsएक लिनक्स सर्वर (जैसे अमेज़न EC2) के लिए फ़ाइल सिस्टम (या समान) का उपयोग करके बाल्टी माउंट करें और बाल्टी तक पहुंचने के लिए सर्वर के अंतर्निहित SFTP सर्वर का उपयोग करें।

  • स्थापित करें s3fs
  • एक रूप में अपनी सुरक्षा क्रेडेंशियल जोड़े access-key-id:secret-access-keyके लिए/etc/passwd-s3fs
  • एक बाल्टी बढ़ते के लिए प्रविष्टि जोड़ें fstab:

    <bucket> /mnt/<bucket> fuse.s3fs rw,nosuid,nodev,allow_other 0 0
    

जानकारी के लिए, मेरे मार्गदर्शक देख अमेज़न S3 के लिए एक SFTP पहुंच सेट कर


S3 क्लाइंट का उपयोग करें

या किसी भी मुफ्त का उपयोग "FTP / SFTP ग्राहक" , यह भी एक है कि "S3 ग्राहक" , और आप सर्वर साइड पर सेटअप कुछ भी नहीं है। उदाहरण के लिए, मेरा WinSCP या Cyberduck

यदि आपको स्थानान्तरण को स्वचालित करने की आवश्यकता है, तो WinSCP में स्क्रिप्टिंग और .NET / PowerShell इंटरफ़ेस भी है।


2
बाल्टी के रूप में घुड़सवार rootबाद में SFTP के माध्यम से permission deniedकनेक्ट होने पर स्थानांतरण समस्याएं देता है ec2-user/mnt/<bucket>फ़ोल्डर स्वामित्व में है rootऔर समूह rootभी है।
एलविस्मदेव

1
@elvismdev / others - ftp उपयोगकर्ता (uid / gid विकल्पों का उपयोग करके) के रूप में माउंट करें और सुनिश्चित करें कि यह allow_other(या -o allow_otherयदि s3fs कमांड लाइन से बढ़ते हुए) के साथ माउंट किया गया है .. तो मेरे लिए काम करता है। मेरे मामले में (केवल एक निजी बाल्टी पर) केवल-पढ़ने की अनुमति (-o default_acl = सार्वजनिक-पठन) के रूप में फ़ाइलों को लिखना एक अच्छा विचार है।
bshea

66

अपडेट करें

S3 अब S3 के लिए एक पूरी तरह से प्रबंधित SFTP गेटवे सेवा प्रदान करता है जो IAM के साथ एकीकृत होती है और aws-cli का उपयोग करके प्रशासित किया जा सकता है।


वहाँ सैद्धांतिक और व्यावहारिक कारण हैं यह एक आदर्श समाधान नहीं है, लेकिन यह काम करता है ...

आप एक linux सर्वर पर कोई FTP / SFTP सेवा (जैसे proftpd के रूप में) स्थापित कर सकते हैं ... या तो EC2 में या अपने खुद के डेटा सेंटर में है, तो फाइल सिस्टम जहां एफ़टीपी सर्वर chroot करने के लिए कॉन्फ़िगर किया गया है, का उपयोग करते हुए एक बाल्टी माउंट s3fs

मेरे पास एक क्लाइंट है जो S3 से कंटेंट सर्व करता है, और कंटेंट उन्हें एक 3 पार्टी द्वारा प्रदान किया जाता है, जो केवल ftp पुश का समर्थन करता है ... इसलिए, कुछ हिचकिचाहट (S3 और वास्तविक फाइल सिस्टम के बीच प्रतिबाधा बेमेल के कारण) का अभाव है - एक उचित एफ़टीपी / एस 3 गेटवे सर्वर सॉफ्टवेयर पैकेज लिखने का समय (जो कि मैं अभी भी इन दिनों में से एक करने का इरादा रखता हूं), मैंने कई महीनों पहले उनके लिए इस समाधान का प्रस्ताव और तैनाती की और उन्होंने सिस्टम के साथ कोई समस्या नहीं बताई।

एक बोनस के रूप में, चूंकि proftpd प्रत्येक उपयोगकर्ता को अपने स्वयं के होम डायरेक्टरी और "प्रेटेंड" में डाल सकता है (जहां तक ​​उपयोगकर्ता यह बता सकता है) कि proftpd उपयोगकर्ता के स्वामित्व वाली फाइलें वास्तव में लॉग इन उपयोगकर्ता के स्वामित्व में हैं, यह प्रत्येक ftp उपयोगकर्ता को अलग करता है। बाल्टी का "उपनिर्देशिका", और अन्य उपयोगकर्ताओं की फाइलों को दुर्गम बनाता है।


हालाँकि, डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ कोई समस्या है।

एक बार जब आप प्राप्त करने के लिए कुछ दसियों या सैकड़ों फ़ाइलें, समस्या स्पष्ट नजर जब आप एक निर्देशिका, लिस्टिंग क्योंकि proftpd पढ़ने के लिए प्रयास करेंगे खींच लेंगे शुरू .ftpaccessसे अधिक, और अधिक, और फिर से फ़ाइलें, और निर्देशिका में प्रत्येक फ़ाइल के लिए, .ftpaccessयह देखने के लिए जाँच की जाती है कि क्या उपयोगकर्ता को इसे देखने की अनुमति दी जानी चाहिए।

आप इस व्यवहार को ProFTPd में अक्षम कर सकते हैं, लेकिन मेरा सुझाव है कि सबसे सही कॉन्फ़िगरेशन -o enable_noobj_cache -o stat_cache_expire=30s3fs में अतिरिक्त विकल्पों को कॉन्फ़िगर करना है:

-o stat_cache_expire (डिफ़ॉल्ट कोई समय सीमा समाप्त नहीं है)

स्टैट कैश में प्रविष्टियों के लिए समाप्ति समय (सेकंड) निर्दिष्ट करें

इस विकल्प के बिना, आप S3 के लिए कम अनुरोध करेंगे, लेकिन आप हमेशा ऑब्जेक्ट में किए गए परिवर्तनों को हमेशा नहीं खोज पाएंगे यदि बाहरी प्रक्रिया या s3fs के अन्य उदाहरण भी बाल्टी में ऑब्जेक्ट्स को संशोधित कर रहे हैं। मेरे सिस्टम में "30" का मूल्य कुछ मनमाने ढंग से चुना गया था।

-o enable_noobj_cache (डिफ़ॉल्ट रूप से अक्षम है)

उस ऑब्जेक्ट के लिए कैश एंट्री सक्षम करें जो मौजूद नहीं है। s3fs को हमेशा यह जांचना होता है कि s3fs कुछ कमांड करता है या नहीं, जब फ़ाइल (या सब डाइरेक्टरी) ऑब्जेक्ट (पाथ) के नीचे मौजूद होती है, क्योंकि s3fs ने ऐसी डायरेक्टरी को मान्यता दी है, जो मौजूद नहीं है और जिसके तहत फाइल या सबडायरेक्टरीज हैं। यह ListBucket अनुरोध को बढ़ाता है और प्रदर्शन को खराब करता है। आप प्रदर्शन के लिए इस विकल्प को निर्दिष्ट कर सकते हैं, s3fs स्टेट कैश में याद रखता है कि ऑब्जेक्ट (फ़ाइल या निर्देशिका) मौजूद नहीं है।

यह विकल्प s3fs को याद रखने की अनुमति देता है कि .ftpaccessवहाँ नहीं था।


ProFTPd के साथ उत्पन्न होने वाले प्रदर्शन के मुद्दों से संबंधित, जो उपरोक्त परिवर्तनों से हल हो गए हैं, आपको भी -o enable_content_md5s3fs में सक्षम करना होगा।

-o enable_content_md5 (डिफ़ॉल्ट रूप से अक्षम है)

सामग्री-md5 हेडर द्वारा मल्टीपार्ट के बिना अपलोड किए गए डेटा को सत्यापित करना। मल्टीपार्ट पोस्टिंग के बिना ऑब्जेक्ट अपलोड करते समय "सामग्री-एमडी 5" हेडर भेजने में सक्षम करें। यदि यह विकल्प सक्षम है, तो छोटी वस्तु अपलोड करते समय s3fs के प्रदर्शन पर इसका कुछ प्रभाव पड़ता है। क्योंकि s3fs हमेशा बड़ी वस्तु अपलोड करते समय MD5 की जाँच करता है, यह विकल्प बड़ी वस्तु पर कोई प्रभाव नहीं डालता है।

यह एक विकल्प है जो कभी भी एक विकल्प नहीं होना चाहिए था - इसे हमेशा सक्षम होना चाहिए, क्योंकि ऐसा नहीं करने से केवल एक नगण्य प्रदर्शन लाभ के लिए एक महत्वपूर्ण अखंडता जांच को दरकिनार कर दिया जाता है। जब किसी ऑब्जेक्ट को Content-MD5:हेडर के साथ S3 में अपलोड किया जाता है , तो S3 चेकसम को मान्य करेगा और ट्रांसिट में दूषित होने पर ऑब्जेक्ट को अस्वीकार कर देगा। हालांकि इसकी संभावना नहीं है, यह इस सुरक्षा जांच को अक्षम करने के लिए अदूरदर्शी लगता है।

उद्धरण s3fs के मैन पेज से हैं। व्याकरण की त्रुटियां मूल पाठ में हैं।


4
क्या आप उन कारणों पर विस्तार से बता सकते हैं कि यह समाधान आदर्श क्यों नहीं है?
फ़र्नियो

2
@MarcoMarsala बड़ी निर्देशिकाओं के लिए फिक्स को उत्तर में जोड़ा गया है।
माइकल - 21

1
@ माइकल- sqlbot क्या आपने प्रोफ़टीपीड विन्यास में "AllowOverride ऑफ" निर्देश का उपयोग करने की कोशिश की है ताकि यह पूरी तरह से ".ftpaccess" फाइलों को पढ़ने से रोकने की कोशिश करे?
ग्रेग डबकी

1
मैंने सब कुछ करने की कोशिश की है और केवल उपयोगकर्ता को सेट कर सकता हूं: फ़ोल्डर स्तर पर समूह / अनुमतियाँ जहां S3 बाल्टी घुड़सवार है। फिर वे अनुमतियाँ S3 पर प्रत्येक फ़ोल्डर में नीचे प्रचारित करती हैं। मैंने इस S3FS कमांड पर कई बदलावों सहित कई चीजों की कोशिश की है sudo s3fs bucket-name /local-mount-folder-name/ -o iam_role=sftp-server -o allow_other -o umask=022 -o uid=501 -o gid=501- एक बार माउंट किए गए S3 फ़ोल्डर में फ़ोल्डर्स पर किसी भी अनुमति को मैं बदल नहीं सकता।
टी। ब्रायन जोन्स

1
@Sverre मैं अभी भी उत्पादन में इस समाधान का उपयोग करें। यह मुझे कोई समस्या नहीं देता है।
माइकल - sqlbot

24

मुझे वोट देने वाले लोगों के लिए 2014 से जवाब:

खैर, S3 एफ़टीपी नहीं है। हालांकि बहुत सारे और बहुत सारे क्लाइंट हैं जो S3 का समर्थन करते हैं।

OS X पर बहुत अधिक उल्लेखनीय एफ़टीपी क्लाइंट का समर्थन है, जिसमें ट्रांसमिट और साइबरडक शामिल हैं

आप Windows पर हैं, तो पर एक नज़र डालें Cyberduck या cloudberry

2019 के लिए अद्यतन उत्तर:

AWS ने हाल ही में SFTP सेवा के लिए AWS ट्रांसफ़र जारी किया है , जो आप देख रहे हैं वह कर सकते हैं।


2
यदि आप खुद की तरह एक सर्वर नौसिखिया हैं तो साइबरडाक कल्पनात्मक रूप से आसान काम करता है। बस ओपन कनेक्शन पर क्लिक किया, ड्रॉपडाउन से S3 को चुना, और मेरी साख को इनपुट करें। ऊपर बताए गए कुछ विकल्पों की तुलना में बहुत आसान है!
१qu:

7

या अपने AWS इंफ्रास्ट्रक्चर में SFTP गेटवे के लिए लिनक्स लिनक्स को स्पिन करें जो आपके अमेजन S3 बकेट में अपलोड की गई फाइलों को सेव करता है।

थॉर्नटेक द्वारा समर्थित


2
हम कई वर्षों से बड़ी परियोजनाओं के लिए उत्पादन में SFTP गेटवे का उपयोग कर रहे हैं। हमने पाया है कि यह s3fs से अधिक विश्वसनीय है
Jeff

3

Filezilla ने सिर्फ अपने FTP क्लाइंट का प्रो संस्करण जारी किया । यह अनुभव जैसे सुव्यवस्थित एफ़टीपी में S3 बाल्टी से जुड़ता है। मैं इसका इस्तेमाल खुद करता हूं (कोई भी संबद्धता नहीं) और यह बहुत अच्छा काम करता है।


3

WinSCp अब S3 प्रोटोकॉल का समर्थन करता है

सबसे पहले, सुनिश्चित करें कि S3 एक्सेस अनुमतियों के साथ आपके AWS उपयोगकर्ता के पास "एक्सेस कुंजी आईडी" बनाई गई है। आपको "गुप्त पहुंच कुंजी" भी जानना होगा। एक्सेस कुंजियाँ IAM प्रबंधन कंसोल के उपयोगकर्ता पृष्ठ पर बनाई और प्रबंधित की जाती हैं।

सुनिश्चित करें कि नई साइट नोड चयनित है।

नई साइट नोड पर, अमेज़न S3 प्रोटोकॉल का चयन करें।

अपनी AWS उपयोगकर्ता पहुँच कुंजी ID और गुप्त पहुँच कुंजी दर्ज करें

सहेजें बटन का उपयोग करके अपनी साइट सेटिंग सहेजें।

लॉगिन बटन का उपयोग करके लॉगिन करें।


2

अमेज़ॅन ने एस 3 के लिए एसएफटीपी सेवाएं जारी की हैं, लेकिन वे केवल एसएफटीपी (एफ़टीपी या एफटीपीईएस) नहीं करते हैं और वे आपकी परिस्थितियों के आधार पर निषेधात्मक हो सकते हैं।

मैं DocEvent.io का संस्थापक हूं , और हम आपके S3 बाल्टी के लिए FTP / S गेटवे प्रदान करते हैं बिना सर्वर को स्पिन करने या बुनियादी ढांचे के बारे में चिंता किए बिना।

अन्य कंपनियां भी हैं जो एक स्टैंडअलोन एफ़टीपी सर्वर प्रदान करती हैं जो आप उस महीने से भुगतान करते हैं जो सॉफ्टवेयर कॉन्फ़िगरेशन के माध्यम से एक एस 3 बाल्टी से जुड़ सकता है, उदाहरण के लिए brickftp.com

अंत में कुछ एडब्ल्यूएस मार्केटप्लेस ऐप भी हैं जो मदद कर सकते हैं, यहां एक खोज लिंक है । इनमें से कई आपके स्वयं के बुनियादी ढांचे में घूमते हैं - इसका मतलब है कि आपको उन उदाहरणों का प्रबंधन और उन्नयन स्वयं करना होगा जिन्हें समय के साथ बनाए रखना और कॉन्फ़िगर करना मुश्किल हो सकता है।


DocEvents अच्छे लगते हैं, लेकिन मुफ्त योजना पर बहुत अधिक प्रतिबंध हैं ... मैं भी सेवा की कोशिश नहीं कर सकता ...
D.Dimitrioglo

1

जैसा कि अन्य पोस्टरों ने बताया है, एसएफटीपी सेवा के लिए एडब्ल्यूएस ट्रांसफर के साथ कुछ सीमाएं हैं। आपको आवश्यकताओं को बारीकी से संरेखित करने की आवश्यकता है। उदाहरण के लिए, कोई कोटा, श्वेतसूची / ब्लैक लिस्ट नहीं हैं, फ़ाइल प्रकार सीमाएं हैं, और गैर-कुंजी आधारित पहुंच के लिए बाहरी सेवाओं की आवश्यकता होती है। उपयोगकर्ता प्रबंधन और IAM से संबंधित एक निश्चित ओवरहेड भी है, जो बड़े पैमाने पर दर्द हो सकता है।

हम अपने ग्राहकों के लिए लगभग 5 वर्षों से SFTP S3 प्रॉक्सी गेटवे चला रहे हैं। कोर समाधान को डॉकर सेवाओं के संग्रह में लपेटा जाता है और जो भी आवश्यक हो, यहां तक ​​कि ऑन-प्रिमाइसेस या स्थानीय विकास सर्वरों में भी तैनात किया जाता है। हमारे लिए उपयोग का मामला थोड़ा अलग है क्योंकि हमारा समाधान डेटा प्रोसेसिंग और पाइपलाइन बनाम एक फ़ाइल साझा पर केंद्रित है। Salesforce उदाहरण में, एक ग्राहक SFTP का उपयोग परिवहन विधि ईमेल, खरीद ... डेटा को SFTP / S3 एनपॉइंट पर भेजने के रूप में करेगा। यह S3 पर ऑब्जेक्ट कुंजी मैप किया गया है। आगमन पर, डेटा उठाया जाता है, संसाधित किया जाता है, रूट किया जाता है और गोदाम में लोड किया जाता है। प्रत्येक हस्तांतरण के लिए हमारे पास काफी महत्वपूर्ण ऑडिटिंग आवश्यकताएं भी हैं, कुछ एडब्ल्यूएस के लिए क्लाउडवॉच लॉग सीधे प्रदान नहीं करते हैं।

जैसा कि अन्य ने उल्लेख किया है, अपना खुद का रोल करना भी एक विकल्प है। एडब्ल्यूएस Lightsail आप एक क्लस्टर सेटअप कर सकते हैं का उपयोग करना, या तो मार्ग 53 या एक ईएलबी का उपयोग कर $ 10 2GB उदाहरणों में से 4 का कहना है,।

सामान्य तौर पर, AWS को यह सेवा प्रदान करते हुए देखना बहुत अच्छा लगता है और मुझे उम्मीद है कि यह समय के साथ परिपक्व होगी। हालांकि, आपके उपयोग के मामले के आधार पर, वैकल्पिक समाधान के लिए एक बेहतर फिट हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.