2008-12-11 11 views
6

वर्तमान प्रोजेक्ट के लिए, मैं वर्चुअल फ़ाइल स्टोर पेश करने के लिए WebDAV को लागू करने के बारे में सोच रहा था, जो क्लाइंट एक्सेस कर सकते हैं। मैं केवल गूगल अनुसंधान अब तक किया है लेकिन जैसे मैं केवल दो तरीकों को लागू करने के साथ भाग प्राप्त कर सकते हैं यह लग रहा है:WebDAV को लागू/उपयोग करने के आपके अनुभव क्या हैं?

GET, PROPFIND 

मुझे लगता है कि यह बहुत अच्छा है। हालांकि मैं सिर्फ उत्सुक था। अगर मैं फ़ाइल अपलोडिंग को कार्यान्वित करना चाहता हूं:

PUT 

मैंने इसे लागू नहीं किया है, लेकिन यह काफी आसान लगता है। मेरी एकमात्र चिंता यह है कि क्या उपयोगकर्ता के लिए एक प्रगति मीटर प्रदर्शित किया जाएगा यदि वे मानक विस्टा एक्सप्लोरर या ओएसएक्स खोजक का उपयोग कर रहे हैं।

मुझे लगता है कि मैं WebDAV के साथ अनुभवी लोगों की कुछ कहानियों की तलाश में हूं।

उत्तर

7

कई वेबएडीवी क्लाइंट्स के लिए और यहां तक ​​कि केवल पढ़ने के लिए, आपको विकल्प का समर्थन करने की भी आवश्यकता होगी। अगर आप अपलोड का समर्थन करना चाहते हैं, तो स्पष्ट रूप से आवश्यक है, और कुछ क्लाइंट (मैकोज़ एक्स?) को लॉकिंग समर्थन की आवश्यकता होगी।

(बीटीडब्ल्यू, RFC 4918 जानकारी का लेखक स्रोत है)।

2

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

Apache Jackrabbit Support for WebDAV

इसके अलावा, आप BitKinex ग्राहक (मुक्त 30 दिन परीक्षण), जो मैं WebDAV सर्वर के परीक्षण के लिए एक उपयोगी उपकरण हो पाया है के बारे में पता होना करने के लिए कर सकते हैं।

BitKinex Home Page

2

हम आंतरिक रूप से WebDAV का उपयोग हमारे फ़ायरवॉल के बाहर ग्राहकों के लिए कुछ फ़ाइल शेयरों का एक फ़ोल्डर आधारित दृश्य प्रदान करते हैं। हम इसके लिए आईआईएस 6 का उपयोग कर रहे हैं।

असल में, यह आईआईएस में एक वर्चुअल निर्देशिका बनाने के लिए उबलता है जो वेब नेटवर्क के माध्यम से उपलब्ध प्रत्येक नेटवर्क फ़ाइल सिस्टम को मैप करता है। इसे "किसी अन्य कंप्यूटर पर स्थित एक शेयर" से आने वाली सामग्री के साथ सेट करें - नेटवर्क निर्देशिका मान के लिए साझा करने के लिए यूएनसी पथ का उपयोग करें। हम इंडेक्स इस संसाधन को छोड़कर सभी विकल्पों को चालू करते हैं। सभी डिफ़ॉल्ट सामग्री पृष्ठों को अक्षम करें। विंडोज इंटीग्रेटेड प्रमाणीकरण चालू करें (हमारा एसएसएल का उपयोग करके भी स्थापित किया गया है)। मेरे पास अज्ञात पहुंच तक पहुंचने से इनकार करने के लिए रूट सेट है और किसी प्रमाणीकृत उपयोगकर्ता तक पहुंच की अनुमति है। हमारे पास वाइल्डकार्ड एमआईएम मैपिंग (। * एप्लिकेशन/ऑक्टेट-स्ट्रीम) भी है। IIS में WebDAV वेब सेवा एक्सटेंशन सक्षम करें। आपको उन सभी फाइल सर्वरों को अनुमतियां देने के लिए वेब सर्वर सेट अप करने की भी आवश्यकता है, जिन्हें आप एक्सेस कर सकते हैं ताकि यह उपयोगकर्ता के प्रमाण-पत्रों को पारित कर सके।

यदि आपके पास मैकिंटॉश क्लाइंट हैं तो आपको एक आईएसएपीआई फ़िल्टर की भी आवश्यकता हो सकती है जो डार्विन क्लाइंट के लिए 401 से 403 त्रुटियों को मैप करती है। माइक्रोसॉफ्ट और ऐप्पल इस बात से असहमत हैं कि स्थिति को कैसे संभालना है जब आपको निर्देशिका में लिखने की अनुमति नहीं है। ऐप्पल 401 (एक्सेस अस्वीकृत) त्रुटि पर क्रेडेंशियल्स को फिर से भेजता रहता है, इसे 403 (निषिद्ध) त्रुटि में अनुवाद करने से यह हो रहा है। डिफ़ॉल्ट रूप से ऐप्पल प्रत्येक निर्देशिका में "डॉट" फ़ाइल लिखना पसंद करता है। निर्देशिकाओं के माध्यम से नेविगेट करना जहां आपके पास लेखन पहुंच नहीं है, यदि आपके पास फ़िल्टर नहीं है तो खोजक को क्रैश कर देगा। यदि आवश्यक हो तो मेरे पास स्रोत कोड होगा।

यह सब मेरे सिर के ऊपर से है। यह संभव है (संभावित?) कि मैंने कुछ याद किया होगा। यदि आपको समस्या है तो मेरी वेबसाइट पर संपर्क जानकारी के माध्यम से मुझसे संपर्क करने में संकोच न करें।

1

मुझे ओएस एक्स के फाइंडर WebDAV समर्थन वास्तव में जटिल होने के लिए मिला है। रीड-राइट समर्थन प्राप्त करने के लिए, आपको अन्य बिट्स के अलावा, LOCK को लागू करना होगा।

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

तो, मुझे नहीं पता कि क्या प्रगति पट्टी होगी या नहीं। जिन फ़ाइलों के साथ मैं काम कर रहा था वे इतने छोटे थे कि उनमें से एक पढ़ने/प्रतिलिपि लगभग तात्कालिक थी। मुझे लगता है कि खोजक का उपयोग कर एक बड़ी फाइल की एक प्रति शायद प्रगति पट्टी देगी - यह किसी भी अन्य प्रकार के घुड़सवार शेयर के लिए करता है।

2

हमारे पास हमारे वेब आधारित उत्पाद पर एक वेबएडीवी सर्वलेट है।

मुझे अपाचे जैकबिट को इसे लागू करने में एक अच्छी मदद मिली है। हालांकि वेब साइड क्लाइंट साइड सपोर्ट पर एक गंभीर पी.आई.टी.ए है।

कई ग्राहक कार्यान्वयन उनके व्यवहार में व्यापक रूप से भिन्न होते हैं और आपको सबसे अधिक संभावनाएं कई अलग-अलग प्रकार के बग किए गए कार्यान्वयन का समर्थन करना होगा।

कुछ उदाहरण

: एमएस विस्टा केवल का समर्थन करता है SSL पर प्रमाणीकरण

सबसे विंडोज़ आधारित WebDAV ग्राहक यह मानें कि आपकी WebDAV सर्वर/देना एक SharePoint सर्वर है और उसके अनुसार कार्य करेंगे (इस प्रकार WebDAV प्रोटोकॉल के अनुसार नहीं)

इसका एक उदाहरण यह है कि आपको अपने सर्वर की रूट पर LOCK अनुरोध को अनुमति देने और अनधिकृत करने की आवश्यकता है (यानी yourdomain.com/ नहीं yourdomain.com/where/webdav/should/live) अन्यथा आप लेखन acces प्राप्त करने में सक्षम नहीं होंगे एमएस विंडोज़ में। (यह एक टॉमकैट मशीन पर एक गंभीर पी.आई.टी.ए है जहां आपकी सामग्री सामान्य रूप से server.com/servlets/paths/thelocation में रहती है)

एमएस ऑफिस के अधिकांश (सभी?) संस्करण वेबडैव लिंक से अलग प्रतिक्रिया देते हैं।

मुझे लगता है कि मेरा बिंदु किसी मौजूदा उत्पाद में वेबडैव समर्थन को एकीकृत कर रहा है, तो आप बहुत अधिक कठिन हो सकते हैं। और यदि संभव हो तो मैं एक (सेमी) -स्टैंडलोन वेबडावी सर्वर जैसे जैकब्रिबेट वेबडैवसेवर, या अपाचे मोड_वेबैव

+0

"एमएस विस्टा केवल एसएसएल पर प्रमाणीकरण का समर्थन करता है" - एसएसएल पर विस्टा समर्थन डीआईजीएस्ट और बेसिक प्रमाणीकरण, और सादे कनेक्शन पर डीआईजीईटी। रजिस्ट्री है जो सादा कनेक्शन पर बेसिक ऑथ चालू करना है, लेकिन यह मेरे लिए काम नहीं करता है :-( –

5

पार्टी के देर से बिट का उपयोग करने की सलाह दूंगा, लेकिन मैंने अधिकांश वेबडैव प्रोटोकॉल को लागू किया है और मैं आत्मविश्वास से बता सकता हूं आपको अधिकांश प्रोटोकॉल को लागू करने की आवश्यकता होगी।

ओएस/एक्स के लिए आपको क्लास -2 वेबडावी समर्थन की आवश्यकता होगी, जिसमें लॉक और अनलॉक शामिल है (मुझे यह विशेष रूप से http: हेडर को पूरी तरह कार्यान्वित करना मुश्किल लगता है, लेकिन खोजक के लिए आपको केवल थोड़ी आवश्यकता होगी ।)

ये मेरी व्यक्तिगत निष्कर्ष में से कुछ हैं:

http://sabre.io/dav/clients/windows/ http://sabre.io/dav/clients/finder/

आशा इस मदद करता है

0

यहाँ WSGI WebDAV के लिए एक और ओपन सोर्स प्रोजेक्ट है http://code.google.com/p/wsgidav/ जहां मैंने PyFileServer प्रोजेक्ट उठाया।

7

मैं दिन के बारे में काम में WebDAV प्रोटोकॉल का सबसे कार्यान्वित: http://github.com/nfarina/simpledav

मैं अजगर में लिखा था गूगल एप इंजन पर चलाने के लिए, और मैं उम्मीद किसी भी अन्य भाषा के लिए एक समान प्रयास किया जाएगा। सब कुछ, यह कोड के लगभग दो पेज है।

मैंने निम्नलिखित विधियों को लागू किया: विकल्प, PROPFIND, MKCOL, DELETE, MOVE, PUT, GET। अब तक मैंने ट्रांसमिट और साइबरडक का परीक्षण किया है और दोनों इसके साथ बढ़िया काम करते हैं।

उम्मीद है कि यह वेबडावी सर्वर को लागू करने में रुचि रखने वाले अगले व्यक्ति के लिए कुछ मार्गदर्शन प्रदान कर सकता है। यह एक कठिन प्रोटोकॉल नहीं है, यह 'गहराई' और 'संग्रह' और ब्लाह जैसी सारणी भाषा के साथ बहुत घना है।

यहाँ कल्पना है: http://www.webdav.org/specs/rfc4918.html

लेकिन सबसे अच्छा तरीका प्रोटोकॉल को समझने के लिए एक ग्राहक एक काम सर्वर के साथ बातचीत को देखने के लिए है। मैंने Box.net के WebDAV सर्वर से कनेक्ट करने और चार्ल्स प्रॉक्सी के साथ निगरानी यातायात से कनेक्ट करने के लिए प्रेषण का उपयोग किया।

+1

+1 अपना कोड दिखाने के लिए – toong

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