کلاؤڈ ذخیرہ گاہ
کلاؤڈ گھر اس ذخیرہ گاہ میں ایک جگہ ہے جو صارف کے پاس پہلے سے ہے۔ ہر فراہم کنندہ coven میں ایک ہی ذخیرہ interface سے چلتا ہے؛ فراہم کنندہ کے لحاظ سے جو مختلف ہے وہ sign-in، ترتیب، اور یہ ہے کہ دوسرے لوگ اور آلات وہاں کیسے پہنچتے ہیں۔
فراہم کنندگان
اس حصے کا ربط| فراہم کنندہ | Sign-in | آپ کا اپنا نیا آلہ | جس شخص کو آپ مدعو کریں |
|---|---|---|---|
| S3-compatible | Access key + secret | restore code، ساتھ آپ کی access key جو QR code میں اس کے ساتھ آتی ہے | اس کے لیے بنائی گئی access key |
| Dropbox | OAuth، coven کے پاس | restore code، پھر آپ کے Dropbox میں sign in | لائبریری کا مشترکہ پوشہ اس کے اکاؤنٹ کے ساتھ بانٹا جاتا ہے |
| OneDrive | OAuth، coven کے پاس | restore code، پھر آپ کے OneDrive میں sign in | لائبریری کا پوشہ اس کے اکاؤنٹ کے ساتھ بانٹا جاتا ہے |
| iCloud (CloudKit) | Apple Account، کوئی sign-in نہیں | restore code، iCloud Keychain سے بھی ملتا ہے | لائبریری کا CloudKit zone اس کے Apple Account کے ساتھ بانٹا جاتا ہے |
S3-compatible میں AWS، Backblaze B2، Cloudflare R2، Wasabi، اور وہ API بولنے والی ہر دوسری چیز آتی ہے۔ ترتیب کا فارم صرف bucket، region، endpoint اور access key پوچھتا ہے؛ coven معروف سروسز کو endpoint کے host سے پہچانتا ہے اور ان سے بات کرنے کا طریقہ بھر دیتا ہے۔ Advanced میں اختیاری key prefix اور service profile کا انتخاب ہے، طے شدہ طور پر خودکار۔ جس سروس کو coven نہیں جانتا اس کے لیے Detect Settings کلید سے bucket جانچ کر جو ملا وہ دکھاتا ہے۔ کچھ محفوظ کرنے سے پہلے ترتیب فراہم کنندہ سے جانچ کرتی ہے، تاکہ ٹائپ کی غلطی پہلی ہم آہنگی پر نہیں بلکہ ترتیب کے وقت ہی ناکام ہو، اور bae coven کی بتائی وجہ سادہ الفاظ میں بتاتا ہے۔ Dropbox، OneDrive اور iCloud صرف مکمل bae ایڈیشن میں ہیں؛ baeium builds انہیں خارج رکھتی ہیں۔
Sign-in اور پوشے
اس حصے کا ربطcoven Dropbox اور OneDrive کا sign-in خود چلاتا ہے، اس لیے کوئی token bae سے نہیں گزرتا۔ ڈیسک ٹاپ پر براؤزر فراہم کنندہ کا صفحہ کھولتا ہے اور ایک مقامی listener وہ ایک redirect وصول کرتا ہے؛ موبائل پر یہ کام پلیٹ فارم کی sign-in شیٹ کرتی ہے۔ coven tokens کو OS کلید خانہ میں رکھتا ہے اور فراہم کنندہ کے انکار پر token ایک بار تازہ کرتا ہے؛ ناکام تازگی خاموش retry loop کے بجائے ہم آہنگی کی حالت میں Sign In عمل کے طور پر دکھتی ہے۔
sign in کے بعد صارف چنتا ہے کہ لائبریری کہاں رہے۔ Dropbox پر وہ مشترکہ پوشہ ہے، کیونکہ گھر کی لائبریری دوسرے لوگوں کے اکاؤنٹس کے ساتھ بانٹی جاتی ہے؛ اس کے لیے bae app folder نہیں بلکہ مکمل Dropbox رسائی استعمال کرتا ہے۔ اگر ابھی کوئی مشترکہ پوشہ نہیں تو bae کہتا ہے کہ Dropbox میں ایک بانٹ کر دوبارہ دیکھیں۔ OneDrive پر وہ کوئی بھی پوشہ ہے، اوپر سے دیکھا جاتا ہے، اور وہاں نیا پوشہ بنایا جا سکتا ہے۔
CloudKit کو کسی بہاؤ کی ضرورت نہیں: coven اسے Apple پلیٹ فارم پر sign in شدہ Apple Account کے طور پر چلاتا ہے۔
گھر کی ترتیب
اس حصے کا ربطگھر کے اندر ہر شے کا راستہ لائبریری کے store id سے شروع ہوتا ہے: coven کی شمار شدہ تبدیلیوں کی ترتیب، اس کے snapshots، شمولیت کی درخواستیں اور محفوظ فائلیں۔ کئی لائبریریاں ایک دوسرے کی اشیا کو چھوئے بغیر ایک ہی Dropbox یا OneDrive پوشہ بانٹ سکتی ہیں۔
ہر شے رمز بند ہو کر بے ترتیب نام کے تحت محفوظ ہوتی ہے؛ صاف متن والی کوئی حالت نہیں۔ bae کی فائلیں coven فائلیں ہیں جن کا حوالہ چار ہم آہنگ جدولوں کی قطاریں دیتی ہیں: release_files، covers، artist_images، اور ہر people قطار کا avatar۔ فائل کا راستہ اس وقت طے ہوتا ہے جب وہ تیار ہوتی ہے، اس لیے البم کا نام بدلنے سے وہ کبھی نہیں ہلتی۔ Encryption دیکھیں۔
حقیقی نیٹ ورک کے تحت برتاؤ
اس حصے کا ربطplayback کے لیے پڑھائی ranged ہے: player پوری فائلوں کے بجائے صرف درکار رمز بند chunks لاتا ہے، اور فائل ترتیب سے چل رہی ہو تو اگلے chunks پہلے سے لے آتا ہے۔ شرح کی حدیں اور عارضی فراہم کنندہ کی غلطیاں ایک ہی backoff منصوبے سے دوبارہ کوشش کرتی ہیں، اور فراہم کنندہ retry-after دے تو اس کی پابندی کرتی ہیں۔ اپ لوڈ کی قطار دوبارہ شروع ہونے کے بعد بھی باقی رہتی ہے: ایپ بند ہونے سے رکا اپ لوڈ شروع سے نہیں بلکہ وہیں سے جاری ہوتا ہے، اور روکے گئے اپ لوڈ رکے ہی رہتے ہیں۔