Pular para o conteúdo

Armazenamento em nuvem

O local na nuvem é uma localização no armazenamento que o usuário já possui. Todo provedor é controlado pela mesma interface de armazenamento em coven; o que difere por provedor é o login, a configuração e como outras pessoas e dispositivos chegam até ele.

ProvedorLoginSeu próprio dispositivo novoUma pessoa que você convida
Compatível com S3Chave de acesso + segredoCódigo de restauração, mais sua chave de acesso, levada ao lado dele no código QRUma chave de acesso criada para ela
DropboxOAuth, mantido por covenCódigo de restauração, depois login no seu DropboxA pasta compartilhada da biblioteca é compartilhada com a conta dela
OneDriveOAuth, mantido por covenCódigo de restauração, depois login no seu OneDriveA pasta da biblioteca é compartilhada com a conta dela
iCloud (CloudKit)Apple Account, sem loginCódigo de restauração, também oferecido pelas Chaves do iCloudA zona CloudKit da biblioteca é compartilhada com a Apple Account dela

Compatível com S3 cobre AWS, Backblaze B2, Cloudflare R2, Wasabi e qualquer outro que fale a API. O formulário de configuração pede só bucket, região, endpoint e chave de acesso; coven reconhece serviços conhecidos pelo host do endpoint e preenche como falar com eles. Avançado guarda o prefixo de chave opcional e uma escolha de perfil de serviço, automático por padrão. Para um serviço que coven não conhece, Detectar ajustes testa o bucket com a chave e mostra o que encontrou. A configuração confere o provedor antes de salvar qualquer coisa, para que um erro de digitação falhe na configuração, não na primeira sincronização, e bae explica o motivo de coven em palavras simples. Dropbox, OneDrive e iCloud existem só na edição bae completa; builds baeium os compilam fora.

coven faz ele mesmo o login no Dropbox e no OneDrive, então nenhum token passa por bae. No desktop, o navegador abre a página do provedor e um ouvinte local recebe o único redirecionamento; no mobile, a folha de login da plataforma faz isso. coven guarda os tokens no chaveiro do sistema operacional e renova um deles uma vez quando o provedor o rejeita; uma renovação que falha aparece no status de sincronização como a ação Entrar, em vez de um loop silencioso de novas tentativas.

Depois do login, o usuário escolhe onde a biblioteca vive. No Dropbox é uma pasta compartilhada, já que uma biblioteca da casa é compartilhada com as contas das outras pessoas; bae usa para isso acesso completo ao Dropbox, não uma pasta de app. Se ainda não houver pasta compartilhada, bae diz para compartilhar uma no Dropbox e procurar novamente. No OneDrive é qualquer pasta, navegada a partir do topo, e uma nova pode ser criada ali.

CloudKit não precisa de fluxo: coven o controla nas plataformas Apple como a Apple Account conectada.

Dentro do local, todo caminho de objeto começa com o id do store da biblioteca: a sequência numerada de mudanças de coven, seus snapshots, pedidos de entrada e arquivos armazenados. Várias bibliotecas podem compartilhar uma pasta do Dropbox ou do OneDrive sem tocar nos objetos umas das outras.

Todo objeto é criptografado e armazenado com um nome aleatório; não existe modo em texto claro. Os arquivos de bae são arquivos de coven referenciados por linhas de quatro tabelas sincronizadas: release_files, covers, artist_images e o avatar de cada linha de people. O caminho de um arquivo é fixado quando ele é preparado, então renomear um álbum nunca o move. Veja Criptografia.

Leituras para reprodução usam intervalos: o player busca os blocos criptografados de que precisa em vez de arquivos inteiros, e busca adiante enquanto um arquivo toca em ordem. Limites de taxa e erros transitórios do provedor tentam novamente seguindo um único cronograma de espera, respeitando o retry-after do provedor quando fornecido. A fila de upload sobrevive a reinícios: um upload interrompido ao sair do app retoma em vez de reiniciar, e uploads pausados continuam pausados.