동기화
동기화는 보통 다른 사람의 서버를 뜻합니다. 계정, 구독, 사용자의 라이브러리를 읽을 수 있는 회사가 따라옵니다. bae는 사용자의 클라우드, 이미 가진 저장소를 통해 동기화하며 서버를 운영하지 않습니다. 사용자의 기기는 그 저장소에 암호화된 변경 내용을 쓰고 서로의 변경 내용을 읽습니다. 제공자는 바이트를 보관하지만 읽을 수 없습니다.
하나의 라이브러리, 모든 기기, 그리고 관여하는 계정은 사용자가 이미 소유한 계정뿐입니다.
클라우드 홈
이 섹션으로 연결라이브러리의 클라우드 홈은 사용자의 저장소 안 한 위치입니다. Google Drive, Dropbox, OneDrive의 폴더, iCloud, 또는 S3 호환 버킷(AWS, Backblaze B2, Cloudflare R2, Wasabi, MinIO, …)일 수 있습니다. 여기에는 라이브러리가 동기화하는 모든 것이 들어갑니다. 카탈로그 변경 내용, 아트워크, 그리고 bae가 관리하게 한 릴리스의 오디오입니다.
Settings의 Sync 아래에서 설정합니다.
- 제공자를 고릅니다. 소비자용 클라우드는 제공자의 자체 로그인 페이지로 로그인합니다. 발급된 토큰 외에는 계정에 대한 어떤 것도 저장하지 않습니다. iCloud는 사용자의 Apple ID를 그대로 씁니다. S3는 bucket, region, endpoint, keys를 받으며 저장 전에 검사합니다.
- 홈이 객체를 저장하는 방식을 고릅니다(아래 참고).
- bae가 동기화를 시작합니다.
클라우드 홈이 없는 라이브러리도 그 자체로 완전합니다. 로컬 전용은 모드이지 제한이 아니며, 클라우드 홈 연결을 끊으면 그 상태로 돌아갑니다.
불투명 또는 둘러볼 수 있음
이 섹션으로 연결설정할 때 제공자가 무엇을 볼 수 있을지 고르며, 그 선택은 해당 홈에서 영구적입니다.
- 불투명(기본값): 모든 객체는 업로드 전에 기기에서 암호화되고 의미 없는 이름으로 저장됩니다. 제공자나 버킷에 접근한 누구든 암호문만 봅니다. 이것이 암호화 페이지가 설명하는 모드이며, 다른 기기와 구성원 추가를 지원하는 유일한 모드입니다.
- 탐색 가능: 객체는 실제 파일 이름으로 평문 저장되며, 아티스트와 앨범 이름의 폴더에 들어갑니다. 어떤 도구로든 버킷을 열어 파일을 직접 복사하거나 재생할 수 있습니다. 아무것도 암호화되지 않으므로 버킷 자체의 접근 제어만 보호 수단이며, 홈은 공유할 수 없습니다.
동기화되는 것
이 섹션으로 연결- 카탈로그: 앨범, 릴리스, 트랙, 크레딧, 작품, 신원, 편집 내용입니다. 모든 기기가 전부 받습니다.
- 아트워크: 커버와 아티스트 이미지입니다. 그리드가 어디서나 표시되도록 미리 가져옵니다.
- 오디오: 클라우드에서 관리하기로 선택한 릴리스만 해당합니다. 관리되지 않는 릴리스는 순전히 로컬에 남고, 다른 기기에는 카탈로그 항목만 있으며 바이트는 가져온 곳에만 있습니다.
기기별 상태는 동기화되지 않습니다. 재생 위치, 볼륨, 대기열, 기기 설정은 기기에 남습니다.
동기화 시점
이 섹션으로 연결동기화는 변경 뒤, 타이머, Sync Now 요청으로 자동 실행됩니다. 일반적인 조건에서는 편집이 몇 초 뒤 다른 기기에 작은 변경으로 도착합니다. 두 기기가 동시에 편집해도 충돌하지 않는 곳에서는 둘 다 반영됩니다. bae는 동시 편집을 필드별로 병합하고, 삭제된 릴리스는 같은 순간 다른 곳에서 편집됐더라도 삭제된 상태로 남습니다. 충돌을 해결하라고 묻지 않습니다.
실패할 때
이 섹션으로 연결동기화 실패는 라이브러리를 중단하지 않습니다. bae가 backoff로 재시도하는 동안 사용자는 로컬에서 계속 둘러보고, 재생하고, 가져올 수 있습니다. 상태 줄은 동기화 중인지와 마지막 동기화 시간을 보여줍니다. 실패하면 오류가 있는 배너가 표시되고, 업로드는 Storage Manager에서 일시 정지, 재시도, 확인할 수 있습니다. 클라우드 홈의 로그인이 만료되면 bae가 다시 연결하라고 요청합니다.