Lưu trữ đám mây
Nhà trên đám mây là một vị trí trong lưu trữ mà người dùng đã sở hữu. Mọi nhà cung cấp được điều khiển qua cùng giao diện lưu trữ trong coven; điểm khác nhau theo từng nhà cung cấp là đăng nhập, thiết lập, và cách người khác cùng thiết bị khác tới được nó.
Nhà cung cấp
Liên kết đến phần này| Nhà cung cấp | Đăng nhập | Thiết bị mới của bạn | Người bạn mời |
|---|---|---|---|
| Tương thích S3 | Access key + secret | Mã khôi phục, cùng khóa truy cập của bạn được mang bên cạnh trong mã QR | Một khóa truy cập được tạo cho họ |
| Dropbox | OAuth, do coven giữ | Mã khôi phục, rồi đăng nhập Dropbox của bạn | Thư mục chia sẻ của thư viện được chia sẻ với tài khoản của họ |
| OneDrive | OAuth, do coven giữ | Mã khôi phục, rồi đăng nhập OneDrive của bạn | Thư mục của thư viện được chia sẻ với tài khoản của họ |
| iCloud (CloudKit) | Apple Account, không đăng nhập | Mã khôi phục, cũng được đề xuất từ iCloud Keychain | Vùng CloudKit của thư viện được chia sẻ với Apple Account của họ |
Tương thích S3 bao phủ AWS, Backblaze B2, Cloudflare R2, Wasabi, và bất kỳ thứ gì khác nói API này. Biểu mẫu thiết lập chỉ hỏi bucket, region, endpoint và khóa truy cập; coven nhận ra các dịch vụ đã biết qua host của endpoint và tự điền cách giao tiếp với chúng. Advanced chứa tiền tố khóa tùy chọn và lựa chọn hồ sơ dịch vụ, mặc định là tự động. Với dịch vụ coven không biết, Detect Settings thăm dò bucket bằng khóa và hiển thị những gì nó tìm thấy. Thiết lập kiểm tra nhà cung cấp trước khi lưu bất cứ thứ gì, để lỗi gõ sai thất bại lúc thiết lập, không phải ở lần đồng bộ đầu, và bae nêu lý do của coven bằng lời lẽ dễ hiểu. Dropbox, OneDrive và iCloud chỉ tồn tại trong phiên bản bae đầy đủ; bản dựng baeium biên dịch loại bỏ chúng.
Đăng nhập và thư mục
Liên kết đến phần nàycoven tự thực hiện đăng nhập Dropbox và OneDrive, nên không token nào đi qua bae. Trên desktop, trình duyệt mở trang của nhà cung cấp và một bộ nghe cục bộ nhận một lần redirect duy nhất; trên mobile, trang đăng nhập của nền tảng làm việc đó. coven giữ token trong keyring của hệ điều hành và làm mới một token một lần khi nhà cung cấp từ chối nó; lần làm mới thất bại hiện trong trạng thái đồng bộ dưới dạng thao tác Sign In thay vì vòng thử lại im lặng.
Sau khi đăng nhập, người dùng chọn nơi thư viện nằm. Với Dropbox đó là một thư mục được chia sẻ, vì thư viện của gia đình được chia sẻ với tài khoản của những người khác; bae dùng quyền truy cập Dropbox đầy đủ cho việc này, không dùng thư mục ứng dụng. Nếu chưa có thư mục chia sẻ nào, bae bảo chia sẻ một thư mục trong Dropbox rồi tìm lại. Với OneDrive đó là bất kỳ thư mục nào, duyệt từ cấp trên cùng, và có thể tạo thư mục mới ở đó.
CloudKit không cần luồng nào: coven điều khiển nó trên nền tảng Apple như Apple Account đã đăng nhập.
Bố cục của nhà
Liên kết đến phần nàyBên trong nhà, mọi đường dẫn đối tượng đều bắt đầu bằng store id của thư viện: chuỗi thay đổi đánh số của coven, các snapshot của nó, yêu cầu tham gia và các tệp đã lưu. Nhiều thư viện có thể dùng chung một thư mục Dropbox hoặc OneDrive mà không chạm vào đối tượng của nhau.
Mọi đối tượng đều được mã hóa và lưu dưới tên ngẫu nhiên; không có chế độ plaintext. Tệp của bae là tệp coven mà các hàng của bốn bảng đồng bộ tham chiếu: release_files, covers, artist_images, và ảnh đại diện trên mỗi hàng people. Đường dẫn của một tệp được cố định khi nó được chuẩn bị, nên đổi tên album không bao giờ di chuyển nó. Xem Mã hóa.
Hành vi dưới mạng thật
Liên kết đến phần nàyĐọc cho phát lại là đọc theo khoảng: trình phát lấy các chunk đã mã hóa nó cần thay vì toàn bộ tệp, và lấy trước khi một tệp phát theo thứ tự. Giới hạn tốc độ và lỗi nhà cung cấp tạm thời được thử lại theo một lịch backoff duy nhất, tôn trọng retry-after của nhà cung cấp khi có. Hàng đợi tải lên sống qua lần khởi động lại: một lượt tải lên bị ngắt vì thoát ứng dụng tiếp tục thay vì bắt đầu lại, và lượt tải lên đang tạm dừng vẫn tạm dừng.