2008-10-09 16 views
10

मैं DropBox मैक क्लाइंट देख रहा हूं और मैं वर्तमान में एक अलग सेवा के लिए एक समान इंटरफ़ेस को लागू करने का शोध कर रहा हूं।ड्रॉपबॉक्स मैक क्लाइंट कैसे काम करता है?

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

क्या किसी को पता है कि यह मैक ओएस एक्स में कैसे प्राप्त किया जाता है?

या कोई भी सूचक ऐप्पल एपीआई या अन्य ओपन सोर्स प्रोजेक्ट्स के लिए है जो खोजक के साथ समान एकीकरण है?

उत्तर

6

दो सुझाव:

पूर्व आप एक ऐप्लिकेशन है जो एक फाइल सिस्टम के रूप में प्रकट होता है और सब ठीक काम करता है लिखने के लिए अनुमति देगा; उत्तरार्द्ध आपको सर्वर-साइड सब कुछ ले जाने की अनुमति देगा और उपयोगकर्ता को फ़ाइल साझा के रूप में आपकी सेवा को बस माउंट करने देगा।

+0

मैकफ्यूएस बिल्कुल वही है जो मुझे चाहिए। मैं इसके बारे में पूरी तरह से भूल गया था। धन्यवाद आदमी। –

31

ड्रॉपबॉक्स या तो मैकफ्यूएस या वेबडीवी द्वारा संचालित नहीं है, हालांकि आप जो भी पूरा करने की कोशिश कर रहे हैं उसके लिए वे पूरी तरह से अच्छे समाधान हो सकते हैं।

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

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

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

जहां ड्रॉपबॉक्स वास्तव में चमकता है कि उनके पास एक अतिरिक्त चाल है जो ड्रॉपबॉक्स फ़ोल्डर में आइटम को वर्तमान सिंक स्थिति के साथ बैज करता है। लेकिन यह वह नहीं है जो आप यहां पूछ रहे हैं।

जहां तक ​​सवाल है, आपको निश्चित रूप से MacFUSE और WebDAV में देखना चाहिए, जो आपकी समस्या का सही समाधान हो सकता है। लेकिन डिस्क पर वास्तविक फ़ाइलों को बदलने वाले पृष्ठभूमि अनुप्रयोग के साथ चीजों को करने का ड्रॉपबॉक्स तरीका, बेहतर व्यापारिक हो सकता है।

+2

विवादों के संबंध में, ड्रॉपबॉक्स स्पष्ट रूप से (कभी नहीं) [परिवर्तनों को मर्ज करने का प्रयास करेगा] (https://www.dropbox.com/help/36)। इसके बजाय यह दो फाइलें बनाएगा। – mjs

11

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

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

2

मेरे लिए यह एक भारी संशोधित संशोधन नियंत्रण प्रणाली की तरह लगता है। इसमें सभी विशेषताएं हैं: डेल्टा के आधार पर अद्यतन फ़ाइलें, फ़ाइलों के पुराने संशोधन को पुनर्प्राप्त करने या पुनर्स्थापित करने के विकल्प। यह लगभग लगता है जैसे वे गिट (GitFS?) का उपयोग कर रहे हैं, या कुछ फाइल सिस्टम जो उन्होंने डिजाइन किए हैं।

3

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

+0

यह मुझे दिखाई दिया कि यदि दो लोगों की एक ही फाइल है, तो यह दूसरी बार अपलोड नहीं होती है। हालांकि, इसका मतलब यह होना चाहिए कि क्लाइंट पर फ़ाइलें एन्क्रिप्ट नहीं की गई हैं, लेकिन ड्रॉपबॉक्स दस्तावेज बताता है कि यह है। यह सोचने का आपका कारण क्या है कि उसी फ़ाइल की केवल एक प्रति ड्रॉपबॉक्स के सर्वर पर सहेजी जाती है? – mjs

+2

ड्रू ह्यूस्टन ने स्वीकार किया है कि वे ऐसा करते हैं। इसे deduplication कहा जाता है। (साथ ही, फ़ाइलों को क्लाइंट पर एन्क्रिप्ट नहीं किया जाता है। ऐसा कहा जाता है कि वे एस 3 सर्वर पर एन्क्रिप्ट किए गए हैं, लेकिन ड्रॉपबॉक्स के बाद ही अनएन्क्रिप्टेड फाइलें प्राप्त होती हैं। साथ ही, फ़ाइलों को ड्रॉपबॉक्स विशिष्ट कुंजी से एन्क्रिप्ट किया जाता है जिसका अर्थ है कि वे अभी भी एक्सेस कर सकते हैं डेटा) – chacham15

2

भी दे सकता है File Conveyor एक कोशिश करें। यह एक पायथन डिमन है जो तत्काल एफएस परिवर्तनों का पता लगाने में सक्षम है (inotify के माध्यम से लिनक्स पर, ओएस एक्स पर FSEvents के माध्यम से), और फ़ाइलों को एक या अधिक गंतव्यों में समन्वयित करने की प्रक्रिया को संसाधित करने में सक्षम है।

समर्थित प्रोटोकॉल: एफ़टीपी, एसएफटीपी, अमेज़ॅन एस 3 (क्लाउडफ्रंट भी समर्थित है), रैकस्पेस क्लाउड फ़ाइलें। आसानी से बढ़ाया जा सकता है। django-storages का उपयोग करता है।

"प्रसंस्करण फाइलें": उदा। छवियों को अनुकूलित करना, वीडियो ट्रांसकोड करना - मूल रूप से वेबसाइटों की गति के संदर्भ में सीडीएन को स्थिर संपत्ति भेजने के लिए इसका उपयोग किया गया था)

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