2009-12-10 17 views
5

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

मुझे वास्तव में इसे स्क्रैच से लागू करने का विचार पसंद नहीं है, तो क्या एसएफटीपी सर्वर के साथ मूल रूप से या WinInet के माध्यम से संवाद करने का कोई तरीका है? क्या कोई सिस्टम लाइब्रेरी है जिसका मैं उपयोग कर सकता हूं (मुझे पी/आमंत्रण का डर नहीं है :))? क्या मुझे इसके लिए तीसरे पक्ष के घटक खरीदना है - यदि हां, तो आप किससे सुझाव देंगे?

+0

SFTP में से कौन सा संस्करण:

पर एक नजर डालें? – SLaks

+0

ठीक है, केवल एक एसएफटीपी है। दूसरे को एफटीपीएस कहा जाता है। –

+0

ओह, मुझे यह मिल गया, क्षमा करें। सुरक्षित एफ़टीपी, सरल एफ़टीपी नहीं। –

उत्तर

2

दुर्भाग्य है, SFTP के देशी रूप समर्थित नहीं है WinInet या किसी अन्य मानक विंडोज पुस्तकालयों द्वारा।

मुझे एसएफटीपी सर्वरों की एक बड़ी विविधता से बात करने में सॉफ्टवेयर के IP*Works SSH for .NET के साथ शुभकामनाएं मिली हैं।

+0

इसकी लागत $ 1000 है। – max

0

http://sourceforge.net/projects/sharpssh/ आपका सबसे अच्छा सर्वश्रेष्ठ हो सकता है। मैं WinSCP के लिए स्क्रिप्ट लिख समाप्त हो गया है, हालांकि, जो आसान था ... स्पष्टता के लिए

संपादित, मैं https://github.com/sshnet/SSH.NET अब की तरह कुछ की सलाह देते हैं के रूप में SharpSSH एक मरे हुए परियोजना

+1

ने http://www.enterprisedt.com/products/edtftpnetpro/overview.html के बारे में अच्छी बातें भी सुनी हैं, लेकिन वास्तव में इसका उपयोग नहीं किया है। – davewasthere

+0

मैंने इसका इस्तेमाल किया है और इसे प्यार किया है। बिना किसी हिचकिचाहट के इसकी सिफारिश करेंगे। – Walter

+0

वाल्टर का दावा दूसरा। यह एक महान पुस्तकालय है। – mrduclaw

-1

या तो आप कुछ SFTP निष्पादनयोग्य स्थापित करते हैं, और operaton प्रदर्शन करने के लिए अपने ग # कार्यक्रम से उन्हें फोन, बिल्कुल वैसे ही जैसे आप कमांड लाइन पर मैन्युअल रूप से करते हैं, या एक edtFTPnet पुस्तकालय जैसे SharpSSH

+0

ठीक है, ग्राहक को सबसे सटीक लॉगिंग की आवश्यकता है, इसलिए बस कुछ टूल का आविष्कार करना वांछित नहीं है। हालांकि, मैं SharpSSH कोशिश करेंगे। –

+0

शार्पएसएसएच एक मृत परियोजना है। –

0

नेट Framwork संस्करण 2.0 के बाद से FtpWebRequest के माध्यम से एफ़टीपी का समर्थन करता है काम करता है। अभी तक एसएफटीपी के लिए कोई समर्थन नहीं।

यदि आपको एफ़टीपी और एसएफटीपी दोनों की आवश्यकता है तो आपको किसी तृतीय पक्ष घटक को आजमाने की ज़रूरत है। Tamir Gal से open source implementation of SFTP है जिसे अक्सर अनुशंसित किया जाता है। या आप हमारे Rebex SFTP जैसे वाणिज्यिक एसएफटीपी घटकों में से एक आज़मा सकते हैं।

// create client, connect and log in 
Sftp client = new Sftp(); 
client.Connect(hostname); 
client.Login(username, password); 

// upload the content of 'c:\data' directory and all subdirectories 
// to the '/wwwroot' directory at the server 
client.PutFiles(@"c:\data\*", "/wwwroot", SftpBatchTransferOptions.Recursive); 

client.Disconnect(); 

आप नहीं जानते कि आपको FTPS जरूरत है या SFTP आप जाँच कर सकते हैं Rebex File Transfer Pack जो दोनों शामिल होगा नहीं कर रहे हैं:

के बाद कोड Rebex SFTP tutorial page से लिया जाता है। एफ़टीपी एपीआई लगभग एसएफटीपी एक के समान है।

0

जेएफवाईआई: शायद .NET में एसएफटीपी के लिए सबसे अधिक सुविधा युक्त घटक हमारे SFTPBlackbox हैं।

3

किसी भी संस्करण में .NET ढांचे में एसएफटीपी के लिए कोई समर्थन नहीं है।


आपको एसएफटीपी के लिए एक थर्ड पार्टी लाइब्रेरी का उपयोग करना होगा।

आप WinSCP .NET assembly का उपयोग कर सकते हैं। यहां तक ​​कि WinSCP NuGet package भी है।

एक तुच्छ SFTP अपलोड सी # उदाहरण:

// Setup session options 
SessionOptions sessionOptions = new SessionOptions 
{ 
    Protocol = Protocol.Sftp, 
    HostName = "example.com", 
    UserName = "user", 
    Password = "mypassword", 
    SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" 
}; 

using (Session session = new Session()) 
{ 
    // Connect 
    session.Open(sessionOptions); 

    // Upload files 
    session.PutFiles(@"d:\toupload\*", "/home/user/").Check(); 
} 

वहाँ lot of other examples हैं।


आप सी #, VB.NET और PowerShell सहित आप के लिए ऊपर की तरह WinSCP GUI generate an SFTP code template हो सकता है,,,।

enter image description here


विधानसभा सिर्फ WinSCP पटकथा के चारों ओर एक आवरण है, इसलिए यह एक पूरी तरह से देशी नेट कोड नहीं है। चूंकि यह .NET ढांचे में सभी उपयोग मामलों में फिट नहीं है। यह ज्यादातर स्वचालित कार्यों के लिए उपयुक्त है, न कि जीयूआई या वेब अनुप्रयोगों के विकास के लिए।

पूरी तरह से देशी .NET SFTP लाइब्रेरी के लिए, SSH.NET देखें, जो अभी तक किसी भी उत्तर में अजीब तरह से उल्लेख नहीं किया गया है।

(मैं WinSCP के लेखक हूँ)

0

मैं WinSCP का उपयोग कर SFTP सर्वर के साथ बातचीत का एक डेमो बनाया।

यह एप्लिकेशन WinSCP .NET असेंबली का उपयोग कर एक SFTP सर्वर में फ़ाइलों सिस्टम की जानकारी अपलोड, हटाने, नाम बदलने और लाने में सक्षम है। https://github.com/ducfilan/SFTP-with-WinSCP

संबंधित मुद्दे