iCloud Drive Apple का क्लाउड फ़ाइल स्टोरेज है जो iOS, macOS और iPadOS में बनाया गया है, जो उपयोगकर्ता के डिवाइसों के बीच दस्तावेज़ों को सिंक्रोनाइज़ करने के लिए है। Apple, 2024 के अनुसार, iCloud Drive फ़ाइलों को संग्रहीत करने और स्वचालित सिंक्रोनाइज़ेशन के लिए CloudKit का उपयोग बैकएंड के रूप में करता है: iPhone पर किए गए बदलाव उपयोगकर्ता की किसी कार्रवाई के बिना Mac और iPad पर तुरंत दिखाई देते हैं। डेवलपर NSDocumentPickerViewController और Ubiquity API के माध्यम से iCloud Drive को एप्लिकेशन में एकीकृत कर सकते हैं।
मुख्य बातें
iCloud Drive Apple की क्लाउड फ़ाइल सेवा है जो समान Apple ID से अधिकृत सभी उपयोगकर्ता डिवाइसों के लिए एकीकृत दस्तावेज़ भंडारण प्रदान करती है। यह सेवा 2014 में iOS 8 और OS X Yosemite के साथ iCloud Documents के प्रतिस्थापन के रूप में शुरू की गई थी।
iCloud Drive अन्य क्लाउड स्टोरेज सेवाओं (Google Drive, Dropbox) से ऑपरेटिंग सिस्टम के साथ गहरे एकीकरण द्वारा भिन्न है: फ़ाइलें macOS पर Finder और iOS पर फ़ाइलें ऐप में सीधे दिखाई देती हैं, बिना किसी अतिरिक्त ऐप को इंस्टॉल करने की आवश्यकता के। सिस्टम पृष्ठभूमि में स्वचालित रूप से सामग्री सिंक्रोनाइज़ करता है, Wi-Fi और सेलुलर नेटवर्क के बीच स्विच करता है।
Apple Platform Overview, 2024 के अनुसार, iCloud Drive 30 दिनों तक फ़ाइल वर्जनिंग, iCloud Sharing के माध्यम से फ़ोल्डर साझाकरण और Spotlight सिस्टम सर्च के साथ एकीकरण का समर्थन करता है। डेवलपर NSFileCoordinator API और Ubiquity कंटेनरों के माध्यम से स्टोरेज तक पहुंच प्राप्त करते हैं।
Ubiquity Apple का एक शब्द है जिसका अर्थ है डेटा की “हर जगह उपस्थित” होने की क्षमता। iCloud Drive के संदर्भ में, यह एक तंत्र है जो फ़ाइलों को CloudKit क्लाउड बैकएंड के माध्यम से उपयोगकर्ता के सभी डिवाइसों पर स्वचालित रूप से सिंक्रोनाइज़ करने की अनुमति देता है।
| घटक | विवरण | भूमिका |
|---|---|---|
| Ubiquity कंटेनर | एप्लिकेशन की विशेष निर्देशिका | सिंक्रोनाइज़ेशन के लिए फ़ाइलें संग्रहीत करता है |
| CloudKit | Apple बैकएंड सेवा | भंडारण और सिंक्रोनाइज़ेशन प्रदान करता है |
| NSMetadataQuery | सिस्टम क्वेरी | Ubiquity फ़ाइल स्थिति को ट्रैक करता है |
| NSFileVersion | संस्करण प्रबंधन | परिवर्तन विरोधों को हल करता है |
Ubiquity कंटेनर एप्लिकेशन के सैंडबॉक्स के अंदर एक निर्देशिका है जो सिंक्रोनाइज़ेशन के लिए चिह्नित है। इस निर्देशिका में रखी गई फ़ाइलें स्वचालित रूप से iCloud Drive पर अपलोड होती हैं और अन्य डिवाइसों पर वितरित की जाती हैं। कंटेनर तक पहुंच Xcode में Capabilities के माध्यम से कॉन्फ़िगर की जाती है।
सिस्टम NSMetadataQuery के माध्यम से प्रत्येक फ़ाइल की स्थिति को ट्रैक करता है: एक फ़ाइल स्थानीय (डिवाइस पर डाउनलोड), दूरस्थ (केवल क्लाउड में), या डाउनलोड हो रही हो सकती है। डेवलपर प्रोग्रामेटिक रूप से फ़ाइल डाउनलोड का अनुरोध कर सकता है या इसे खोलने से पहले इसकी उपलब्धता की जांच कर सकता है।
iCloud Drive का एकीकरण Xcode में iCloud क्षमता जोड़ने और iCloud Documents सेवा सक्षम करने से शुरू होता है। उसके बाद, एप्लिकेशन Ubiquity कंटेनर तक पहुंच प्राप्त करता है, जो एक विशेष निर्देशिका है जिसका पथ FileManager के माध्यम से वापस किया जाता है।
import UIKit
class DocumentManager {
func ubiquityURL() -> URL? {
return FileManager.default
.url(forUbiquityContainer: nil)
}
func saveToICloud(data: Data, filename: String) {
guard let containerURL = ubiquityURL() else { return }
let fileURL = containerURL
.appendingPathComponent(filename)
do {
try data.write(to: fileURL)
Logger.storage.info(
"Saved \(filename) to iCloud Drive"
)
} catch {
Logger.storage.error(
"Save failed: \(error.localizedDescription)"
)
}
}
func listICloudFiles() {
let query = NSMetadataQuery()
query.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
query.start()
}
}
NSDocumentPickerViewController iCloud Drive से फ़ाइलों का चयन और आयात करने के लिए एक सिस्टम UI प्रदान करता है। उपयोगकर्ता खोज, सॉर्टिंग और बहु-चयन के समर्थन के साथ एक मानक फ़ाइल ब्राउज़र देखता है। फ़ाइल चयन के बाद, एप्लिकेशन इसका URL प्राप्त करता है और NSFileCoordinator के माध्यम से इसके साथ काम कर सकता है।
महत्वपूर्ण नियम: iCloud Drive फ़ाइलों के साथ काम करते समय, पढ़ने और लिखने के लिए NSFileCoordinator का उपयोग करना आवश्यक है। यह सुनिश्चित करता है कि ऑपरेशन के दौरान फ़ाइल किसी अन्य प्रक्रिया (जैसे सिंक्रोनाइज़ेशन) द्वारा संशोधित न हो। समन्वय की उपेक्षा से डेटा भ्रष्टाचार हो सकता है।
संस्करण विरोध तब होते हैं जब सिंक्रोनाइज़ेशन पूरा होने से पहले एक फ़ाइल दो डिवाइसों पर एक साथ संशोधित की जाती है। iOS स्वचालित रूप से NSFileVersion के माध्यम से ऐसी स्थितियों का पता लगाता है और विरोधी संस्करण बनाता है जिन्हें उपयोगकर्ता या एप्लिकेशन को हल करना होता है।
func resolveConflicts(for fileURL: URL) {
let conflictVersions = NSFileVersion
.unresolvedConflictVersionsOfItem(at: fileURL) ?? []
for version in conflictVersions {
do {
let conflictData = try Data(contentsOf: version.url)
let resolved = mergeData(
original: try Data(contentsOf: fileURL),
conflict: conflictData
)
try resolved.write(to: fileURL)
version.remove()
} catch {
Logger.sync.error(
"Conflict resolution failed: \(error)"
)
}
}
}
NSFileVersion फ़ाइल परिवर्तन इतिहास को 30 दिनों तक संग्रहीत करता है। प्रत्येक संस्करण में URL, निर्माण तिथि और संस्करण बनाने वाले डिवाइस का पहचानकर्ता होता है। सिस्टम स्वचालित रूप से संस्करणों को विरोधी के रूप में चिह्नित करता है जब दो डिवाइस समान आधार पहचानकर्ता के साथ परिवर्तन भेजते हैं।
समाधान रणनीतियाँ: एप्लिकेशन स्वचालित रूप से परिवर्तनों को मर्ज कर सकता है (समर्थित प्रारूपों के लिए), उपयोगकर्ता को संस्करण विकल्प दिखा सकता है, या अंतिम-लेखक-जीतता है (last-writer-wins) रणनीति का उपयोग कर सकता है। Apple टेक्स्ट और संरचित डेटा के लिए स्वचालित मर्जिंग की सिफारिश करता है, और बाइनरी प्रारूपों के लिए उपयोगकर्ता को विरोधी संस्करण दिखाने की सिफारिश करता है।
मुफ्त स्टोरेज iCloud में 5 GB है, जो सभी उपयोगकर्ता सेवाओं: बैकअप, फ़ोटो, मेल और iCloud Drive के बीच वितरित है। भुगतान योजनाएं 50 GB से शुरू होती हैं और 12 TB तक जाती हैं। गहन फ़ाइल आदान-प्रदान वाले एप्लिकेशन के लिए, इन सीमाओं को ध्यान में रखना महत्वपूर्ण है।
स्टोरेज अनुकूलन: iOS एक फ़ाइल निष्कासन तंत्र प्रदान करता है—जब स्थानीय स्थान समाप्त हो जाता है, तो सिस्टम iCloud Drive फ़ाइलों की कैश्ड प्रतियां हटा सकता है, केवल मेटाडेटा छोड़कर। ऐसी फ़ाइल खोलने का प्रयास करते समय, सिस्टम स्वचालित रूप से इसे क्लाउड से डाउनलोड करता है। डेवलपर NSFileCoordinator के माध्यम से इस प्रक्रिया को नियंत्रित कर सकता है और NSMetadataUbiquitousItemDownloadingStatusKey के माध्यम से फ़ाइल स्थिति की जांच कर सकता है।
WWDC 2022 के अनुसार, Apple iCloud Drive को अनुकूलित करने के लिए निम्नलिखित प्रथाओं की सिफारिश करता है: Ubiquity कंटेनर में केवल उपयोगकर्ता दस्तावेज़ संग्रहीत करें, एप्लिकेशन कैश नहीं; प्रगति संकेत के साथ अतुल्यकालिक डाउनलोड का उपयोग करें; डाउनलोड से पहले उपयोगकर्ता को फ़ाइल आकार की जानकारी प्रदान करें; बड़ी फ़ाइलों के लिए फिर से शुरू समर्थन लागू करें।
मुख्य बारीकियां: Ubiquity कंटेनर से फ़ाइल हटाने से यह उपयोगकर्ता के सभी डिवाइसों से हट जाती है। अस्थायी फ़ाइलों के लिए, Ubiquity कंटेनर के बजाय स्थानीय Documents निर्देशिका का उपयोग करें। यह भी ध्यान दें कि सिंक्रोनाइज़ेशन तत्काल नहीं है—फ़ाइल आकार और नेटवर्क के आधार पर देरी कुछ सेकंड से मिनटों तक हो सकती है।
अक्सर पूछे जाने वाले प्रश्न
iCloud Drive Apple का क्लाउड फ़ाइल स्टोरेज है जो iPhone, iPad, Mac और PC के बीच दस्तावेज़ों को सिंक्रोनाइज़ करता है। यह Finder और फ़ाइलें ऐप में एकीकृत है, जो आपको अतिरिक्त ऐप के बिना दस्तावेज़ों के साथ काम करने की अनुमति देता है।
सिंक्रोनाइज़ेशन CloudKit के माध्यम से काम करता है: एप्लिकेशन के Ubiquity कंटेनर से फ़ाइलें स्वचालित रूप से क्लाउड पर अपलोड होती हैं और उपयोगकर्ता के अन्य डिवाइसों पर वितरित की जाती हैं। सिस्टम स्थिति को ट्रैक करने के लिए NSMetadataQuery और सुरक्षित पहुंच के लिए NSFileCoordinator का उपयोग करता है।
Xcode में iCloud क्षमता जोड़ें, iCloud Documents सेवा सक्षम करें, और सिंक्रोनाइज़्ड निर्देशिका का पथ प्राप्त करने के लिए FileManager.url(forUbiquityContainer:) का उपयोग करें। फ़ाइल चयन के लिए NSDocumentPickerViewController का उपयोग करें।
iOS विरोधी संस्करण NSFileVersion के माध्यम से बनाता है। डेवलपर स्वचालित रूप से परिवर्तनों को मर्ज कर सकता है या उपयोगकर्ता को विकल्प दिखा सकता है। सिस्टम संस्करणों को 30 दिनों तक संग्रहीत करता है और जब विभिन्न डिवाइसों से एक साथ परिवर्तन होते हैं तो स्वचालित रूप से विरोधों को चिह्नित करता है।
मुफ्त स्टोरेज सभी iCloud सेवाओं में 5 GB है। भुगतान योजनाएं: 50 GB, 200 GB, 2 TB, 6 TB और 12 TB। बड़ी फ़ाइलों के लिए, फिर से शुरू समर्थन लागू करें और लिखने से पहले उपलब्ध स्थान की जांच करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें