2015-01-30 7 views
5

पहले के रूप में OneDrive या ड्रॉपबॉक्स का उपयोग करना, यह किसी भी ofthesequestions का डुप्लिकेट है, जो एक बहु उपयोगकर्ता अनुप्रयोग के बैकएंड के रूप में एक ड्रॉपबॉक्स खाते का उपयोग कर चर्चाएक डेटाबेस

मैं के एक मुट्ठी भर का निर्माण किया है नहीं है ऐप, ज्यादातर विंडोज फोन और विंडोज स्टोर पर, और काम में बहुत कुछ है।

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

मैं डेटाबेस के रूप में OneDrive, या Dropbox, या कुछ अन्य मुफ्त क्लाउड होस्टिंग का उपयोग करने के इस विचार पर वापस आ रहा हूं। यहां बताया गया है कि मैं इसे कैसे देख रहा हूं।

चलें कहते हैं कि हम कहा जाता Jobbie

  • उपयोगकर्ता दोनों उपकरणों पर दोनों उपकरणों OneDrive में
  • उपयोगकर्ता लॉग पर Jobbie स्थापित करता है एक कार्यसूची एप्लिकेशन है, उनके OneDrive फ़ोल्डर में एक "jobbie" सिंक फ़ोल्डर बनाने
  • डिवाइस ए पर, उपयोगकर्ता एक नया todo आइटम बनाता है "सूखी सफाई उठाएं"
  • डिवाइस ए "20153001-pick_up_dry_cleaning.item" नाम के साथ OneDrive पर एक टेक्स्ट फ़ाइल अपलोड करता है।
  • डिवाइस बी फ़ोल्डर को स्कैन करता है, एक नई फ़ाइल पाता है, और स्थानीय डेटाबेस
  • में जोड़ देता है डिवाइस बी पर, उपयोगकर्ता के निशान "ड्राई क्लीनिंग लेने" "हो गया" के रूप में है, और फ़ाइल "x20153001-pick_up_dry_cleaning नाम दिया है .item "(या हटाए गए)
  • डिवाइस ए, फ़ोल्डर को स्कैन करता है देखता आइटम नाम दिया गया है (या हटाए गए) और स्थानीय डेटाबेस से निकाल

स्पष्ट समस्याओं मैं इस दृष्टिकोण के साथ देखते हैं

हैं
  1. आइटम 2 तक सीमित हैं 55 - 9 वर्ण (9 xYYYYMMDD के लिए आरक्षित), जब तक आप प्रत्येक फ़ाइल जो काफी धीमी गति से किया जाएगा डाउनलोड करना चाहते
  2. कोई ताला लगा

इन दो मुद्दों के अलावा, किसी भी अन्य समस्याओं कार्यान्वयन के लिए मैं सामना करना पड़ सकता देखते हैं ऐसी प्रणाली?

पुनश्च: मैं भी स्थानीय प्रति के साथ एक संग्रहीत SQLite फ़ाइल को अधिलेखित करने पर विचार किया है, लेकिन मैं समझ यह एक मोबाइल डिवाइस के लिए बहुत अधिक डेटा भूमि के ऊपर होगा

अद्यतन

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

अद्यतन 2

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

+1

वास्तव में अब मैं इसके बारे में सोचता हूं, यदि आप 2 अंकों के वर्ष प्रारूप का उपयोग करते हैं तो आप 7 वर्णों से दूर हो सकते हैं। यह कम से कम अगले 100 वर्षों के लिए काम करेगा। – roryok

+1

मुझे लगता है कि आपने ड्रॉपबॉक्स के डेटास्टोर एपीआई के बारे में नहीं सुना है। :-) https://www.dropbox.com/developers/datastore विशेष रूप से, सूची नमूना ऐप पर एक नज़र डालें: https://www.dropbox.com/developers/blog/108/new-lists- नमूना- एप्लिकेशन। – smarx

+0

यदि आप फ़ाइलों के माध्यम से सिंक करना चाहते हैं, तो मैं इसमें केवल सभी फाइलों के साथ एक ही फाइल का सुझाव दूंगा। (व्यक्तिगत रूप से, मैं JSON का उपयोग करता हूं।) इस तरह की चीज़ के साथ एकमात्र मुश्किल हिस्सा ऑफलाइन उपकरणों द्वारा बनाए गए संघर्षों से निपट रहा है। सबसे आसान संघर्ष संकल्प सिर्फ एक विजेता चुनना होगा (उदाहरण के लिए पहला लेखक जीतता है)। वास्तव में सूचियों को मर्ज करने के लिए एक बेहतर संघर्ष समाधान रणनीति होगी। – smarx

उत्तर

1

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

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

+2

मैंने उल्लेख किया कि मैं Azure या AWS बर्दाश्त नहीं कर सकता। यह पैमाने का मामला है। ऐप्स निःशुल्क हैं, इसलिए डेटास्टोर प्रदान करने के लिए स्वतंत्र होना चाहिए। उस ने कहा, आपका जवाब मैंने जो प्रश्न पूछा है, उसे कवर करता है, इसलिए मैं इसे स्वीकार कर रहा हूं। – roryok

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