মেঘ-সংরক্ষণ
মেঘ-ঘর হলো ব্যবহারকারীর আগে থেকেই থাকা সংরক্ষণের একটি জায়গা। প্রতিটি সেবা-দাতা coven-এর একই সংরক্ষণ interface দিয়ে চালিত হয়; সেবা-দাতা অনুযায়ী যা বদলায় তা হলো সাইন-ইন, সেটআপ, এবং অন্য মানুষ ও ডিভাইস কীভাবে সেখানে পৌঁছায়।
Provider
এই অংশের লিঙ্ক| সেবা-দাতা | সাইন-ইন | আপনার নিজের নতুন ডিভাইস | আপনি যাকে আমন্ত্রণ জানান |
|---|---|---|---|
| S3-compatible | অ্যাক্সেস কী + secret | রিস্টোর কোড, সঙ্গে QR কোডে তার পাশে থাকা আপনার অ্যাক্সেস কী | তাঁর জন্য তৈরি একটি অ্যাক্সেস কী |
| Dropbox | OAuth, coven রাখে | রিস্টোর কোড, তারপর আপনার Dropbox-এ সাইন ইন | লাইব্রেরির শেয়ার করা ফোল্ডার তাঁর অ্যাকাউন্টের সঙ্গে ভাগ হয় |
| OneDrive | OAuth, coven রাখে | রিস্টোর কোড, তারপর আপনার OneDrive-এ সাইন ইন | লাইব্রেরির ফোল্ডার তাঁর অ্যাকাউন্টের সঙ্গে ভাগ হয় |
| iCloud (CloudKit) | Apple Account, সাইন-ইন নেই | রিস্টোর কোড, iCloud Keychain থেকেও পাওয়া যায় | লাইব্রেরির CloudKit জোন তাঁর Apple Account-এর সঙ্গে ভাগ হয় |
S3-compatible AWS, Backblaze B2, Cloudflare R2, Wasabi, এবং এই API বলা অন্য সবকিছু কভার করে। সেটআপ ফর্ম শুধু bucket, region, endpoint ও অ্যাক্সেস কী চায়; coven পরিচিত সার্ভিসগুলো endpoint-এর host দেখে চেনে এবং তাদের সঙ্গে কথা বলার পদ্ধতি পূরণ করে। Advanced-এ ঐচ্ছিক key prefix এবং সার্ভিস প্রোফাইল বাছাই থাকে, যা ডিফল্টে স্বয়ংক্রিয়। যে সার্ভিস coven চেনে না তার জন্য Detect Settings কী দিয়ে bucket যাচাই করে যা পেয়েছে তা দেখায়। কিছু সংরক্ষণের আগে সেটআপ সেবা-দাতা যাচাই করে, যাতে typo প্রথম সিঙ্কে নয়, সেটআপেই ব্যর্থ হয়, আর bae coven-এর কারণ সহজ ভাষায় জানায়। Dropbox, OneDrive ও iCloud শুধু পূর্ণ bae edition-এ থাকে; baeium build সেগুলো compile করে না।
সাইন-ইন ও ফোল্ডার
এই অংশের লিঙ্কcoven Dropbox ও OneDrive-এর সাইন-ইন নিজেই করে, তাই কোনো টোকেন bae-এর মধ্য দিয়ে যায় না। ডেস্কটপে ব্রাউজার সেবা-দাতার পৃষ্ঠা খোলে এবং একটি স্থানীয় listener সেই একটি redirect গ্রহণ করে; মোবাইলে কাজটি করে প্ল্যাটফর্মের সাইন-ইন শিট। coven টোকেন OS keyring-এ রাখে এবং সেবা-দাতা প্রত্যাখ্যান করলে একবার refresh করে; ব্যর্থ refresh নীরব retry loop না হয়ে সিঙ্ক অবস্থায় Sign In কাজ হিসেবে দেখা যায়।
সাইন ইনের পরে ব্যবহারকারী বেছে নেন লাইব্রেরি কোথায় থাকবে। Dropbox-এ এটি একটি শেয়ার করা ফোল্ডার, কারণ পরিবারের লাইব্রেরি অন্যদের অ্যাকাউন্টের সঙ্গে ভাগ হয়; এর জন্য bae অ্যাপ ফোল্ডার নয়, পূর্ণ Dropbox প্রবেশাধিকার ব্যবহার করে। এখনও কোনো শেয়ার করা ফোল্ডার না থাকলে bae Dropbox-এ একটি ফোল্ডার শেয়ার করে আবার খুঁজতে বলে। OneDrive-এ এটি যেকোনো ফোল্ডার, উপর থেকে ঘুরে দেখা যায়, আর সেখানে নতুন ফোল্ডার তৈরি করা যায়।
CloudKit-এর কোনো flow লাগে না: coven Apple প্ল্যাটফর্মে সাইন-ইন করা Apple Account হিসেবেই সেটি চালায়।
ঘরের বিন্যাস
এই অংশের লিঙ্কঘরের ভেতরে প্রতিটি object path লাইব্রেরির store id দিয়ে শুরু হয়: coven-এর নম্বর দেওয়া পরিবর্তনের ক্রম, তার snapshot, যোগদানের অনুরোধ এবং রাখা ফাইল। একাধিক লাইব্রেরি একে অপরের object না ছুঁয়ে একটি Dropbox বা OneDrive ফোল্ডার ভাগ করতে পারে।
প্রতিটি object encrypted হয়ে এলোমেলো নামের নিচে রাখা হয়; plaintext mode নেই। bae-এর ফাইল হলো coven ফাইল, যাদের চারটি সিঙ্ক হওয়া টেবিলের সারি reference করে: release_files, covers, artist_images, এবং প্রতিটি people সারির অবতার। একটি ফাইলের path প্রস্তুত হওয়ার সময় নির্দিষ্ট হয়, তাই অ্যালবামের নাম বদলালে সেটি কখনও নড়ে না। Encryption দেখুন।
বাস্তব network-এ আচরণ
এই অংশের লিঙ্কপ্লেব্যাকের read ranged: player পুরো ফাইল নয়, দরকারি encrypted chunk আনে, এবং ফাইল ক্রমানুসারে বাজার সময় আগাম আনে। Rate limit ও সাময়িক সেবা-দাতা error একটি একক backoff পরিকল্পনায় retry করে, সেবা-দাতা retry-after দিলে তা মানে। আপলোড সারি restart টিকে থাকে: app বন্ধ করায় থেমে যাওয়া আপলোড আবার শুরু থেকে নয়, যেখানে থেমেছিল সেখান থেকে চলে, আর বিরতি দেওয়া আপলোড বিরতিতেই থাকে।