2009-05-18 15 views
5

मैं एक फ़ाइल अपलोड सेवा के डिजाइन चरण में हूं जो उपयोगकर्ताओं को हमारे सर्वर पर बहुत बड़ी ज़िप फ़ाइलों को अपलोड करने के साथ-साथ डेटा के साथ हमारे डेटाबेस को अपडेट करने की अनुमति देता है। चूंकि फाइलें बड़ी हैं (लगभग 300 एमबी) हम उपयोगकर्ता को बैंडविड्थ की मात्रा को सीमित करने की अनुमति देना चाहते हैं, जिसे वे अपलोड करने के लिए उपयोग करना चाहते हैं। उन्हें स्थानांतरण को रोकने और फिर से शुरू करने में सक्षम होना चाहिए, और इसे सिस्टम रीबूट से पुनर्प्राप्त करना चाहिए। उपयोगकर्ता को यह सुनिश्चित करने के लिए कि हमारे पास फ़ाइल अपलोड करने और हमारे डेटाबेस में परिवर्तन करने की अनुमति है, हमारे MSSQL डेटाबेस में प्रमाणीकृत होने की भी आवश्यकता है।पुन: प्रारंभ करने योग्य फ़ाइल अपलोड

मेरा सवाल है, ऐसा करने के लिए सबसे अच्छी तकनीक क्या है? हम आवश्यक विकास की मात्रा को कम करना चाहते हैं, लेकिन केवल एक चीज जिसे मैं अब सोच सकता हूं जो हमें ऐसा करने की इजाजत देता है, वह क्लाइंट और सर्वर ऐप को पायथन, जावा या सी # जैसे स्क्रैच से बनाना होगा। क्या कोई मौजूदा तकनीक उपलब्ध है जो हमें ऐसा करने की अनुमति देगी?

उत्तर

4

इसके लिए कुछ अपलोड नियंत्रण हैं जो आपको Google में सक्षम होना चाहिए। इस download page पर कुछ हैं।

एक और काम यह है कि अपने क्लाइंट फ़ायरफ़ॉक्स एफ़टीपी प्लगइन स्थापित करें या फ़ायरफ़ॉक्स प्लगइन स्वयं लिखें लेकिन एफ़टीपी बूट करने का सबसे आसान तरीका है।

+2

यह टिप्पणी मुझे pyftpdlib मॉड्यूल खोजने के लिए प्रेरित करती है जो हमें सभी प्रकार की चीजों को करने के लिए एक FTP सर्वर का विस्तार करने की अनुमति देती है। http://code.google.com/p/pyftpdlib/ –

4

एफ़टीपी के साथ क्या गलत है? प्रोटोकॉल पुन: प्रयोज्यता का समर्थन करता है और बहुत सारे ग्राहक हैं।

+0

एक बार सर्वर पर डेटा अपलोड हो जाने के बाद हमें किसी फॉर्म की एक स्क्रिप्ट निष्पादित करने की आवश्यकता होगी जो डीबी तालिका में एक पंक्ति जोड़ देगा, सर्वर पर खोल कमांड निष्पादित कर सकता है? –

+5

यदि आपको अपलोड करने के बाद निष्पादित कुछ की आवश्यकता है, तो आप अपनी पसंद के किसी भी भाषा में अपने एप्लिकेशन के हिस्से के रूप में FTP सर्वर को कार्यान्वित कर सकते हैं। पायथन में ftplib है। वैकल्पिक रूप से, आप स्क्रिप्ट को ट्रिगर करने के लिए फ़ाइल ईवेंट के लिए अपलोड निर्देशिका देख सकते हैं। – JimB

0

क्लाइंट साइड पर, फ्लैश; सर्वर की तरफ, जो कुछ भी (इससे कोई फर्क नहीं पड़ता)।

कोई मौजूदा तकनीक नहीं (एफ़टीपी या कुछ का उपयोग करने के अलावा)।

0

मैंने पाया 2 अधिक संभावनाएं

  • माइक्रोसॉफ्ट बुद्धिमत्तापूर्ण स्थानांतरण सेवा (BITS):

    है: ऊपर और डाउनलोड, बड़ी फ़ाइलों, एन्क्रिप्टेड (विज़ https) का पुन: प्रारंभ योग्य (जब भी उपयोगकर्ता लॉग इन होता है तब तक ऑटो फिर से शुरू होता है), मैन्युअल रोकें और फिर से शुरू करें, प्रमाणीकरण (https के माध्यम से फिर से), .NET, अग्रभूमि या पृष्ठभूमि प्राथमिकता के लिए रैपर, ...

    नहीं: बैंडविड्थ अवरोध, फ़ाइल सत्यापन (केवल फ़ाइल आकार), संपीड़न

  • rsync:

    है: यूनिडायरेक्शनल स्थानांतरण, बड़ी फ़ाइलों, आंशिक अपलोड की फिर से शुरू (और बंद के माध्यम से रोकते हैं), सत्यापन, एन्क्रिप्शन, संपीड़न, प्रयोग करने योग्य ग पुस्तकालय (ssh, stunnel माध्यम से) (librsync मार्टिन पूल [1] तक, [2])

    नहीं : अच्छा खिड़कियों compability (केवल cygwin के माध्यम से या cwrsync), व्यावसायिक रूप से प्रयोग करने योग्य (जीपीएल)

किसी सी # में कुछ और ही पाया?

0

मैं हैरान कोई भी धार फ़ाइलों उल्लेख किया है हूँ। उन्हें एक स्क्रिप्ट में भी पैक किया जा सकता है जो तब निष्पादित करने के लिए कुछ ट्रिगर करता है।

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