Guias

Gestor de ficheiros para MinIO e S3 self-hosted: ligue-o ao Nubbo

Como ligar o seu próprio armazenamento compatível com S3, como MinIO, Ceph ou SeaweedFS, ao Nubbo: endpoint, chave, região, CORS e o que fazer se falhar.

O Nubbo liga-se a qualquer armazenamento compatível com S3 que assine com Signature V4, como MinIO, Ceph ou SeaweedFS, no seu próprio servidor ou noutro fornecedor. Só precisa do URL do endpoint, de uma chave e da região. Este guia segue passo a passo o assistente do Nubbo, com os dois caminhos: automático ou com uma chave limitada a um bucket.

O que consegue

  • Explorar o bucket como se fosse um disco: pastas, vistas, pesquisa, lixo, etiquetas e favoritos.
  • Carregar e transferir ficheiros diretamente entre o seu navegador e o seu servidor. Os ficheiros nunca passam pelos servidores do Nubbo.
  • Partilhar ficheiros e pastas com palavra-passe, expiração e limite de transferências, receber ficheiros no seu bucket e criar galerias.
  • As suas chaves são guardadas encriptadas com AES-256-GCM e pode desligar o bucket a qualquer momento.

Antes de começar

Precisa de um armazenamento compatível com S3 e de uma conta no Nubbo. Cada bucket que liga conta para o limite do seu plano: o Grátis permite 2, o Personal 5 e o Pro não tem limite. O endpoint tem de ser um URL público a que cheguem tanto os servidores do Nubbo como o navegador, e precisa de HTTPS, porque o navegador não carrega conteúdo HTTP a partir de https://nubbo.app. O Nubbo rejeita endpoints que apontem para endereços privados ou locais. Se o seu servidor não tiver regiões, deixe us-east-1.

Escolha como ligar

O assistente do Nubbo oferece dois caminhos. Ambos terminam da mesma forma: o bucket ligado e pronto para carregamentos a partir do navegador.

AutomáticoCom uma chave limitada
ChaveAcesso a toda a contaLimitada a um bucket
BucketO Nubbo usa um dos seus ou cria um novoCria-o você primeiro
CORSO Nubbo adiciona a regra por siAdiciona você a regra
Quando o escolherA forma mais rápidaQuando não quer dar acesso a toda a conta

Ligação automática

Passo 1: crie a chave no seu servidor

  1. Confirme que o seu servidor expõe a API S3 com assinaturas V4 num URL HTTPS público, por exemplo https://s3.your-domain.com.
  2. Crie uma chave que possa criar buckets e alterar o respetivo CORS.
  3. Anote o URL do endpoint e a região. Se o seu servidor não tiver regiões, use us-east-1.

Passo 2: ligue o bucket no Nubbo

  1. No Nubbo, abra Buckets e prima Ligar bucket. Escolha S3 personalizado / Self-hosted e prima Continuar.

    Passo Fornecedor do assistente do Nubbo com S3 personalizado / Self-hosted selecionado Passo Fornecedor do assistente do Nubbo com S3 personalizado / Self-hosted selecionado
  2. Escolha Automático e prima Continuar.

    Passo Como ligar com as opções Automático e Com uma chave limitada Passo Como ligar com as opções Automático e Com uma chave limitada
  3. No passo A sua chave, cole a access key, a secret key, o URL do endpoint e a região. Prima Verificar chave. O Nubbo verifica que a chave funciona e que tem acesso a toda a conta.

    Passo A sua chave para S3 personalizado / Self-hosted com o guia rápido e os campos da chave Passo A sua chave para S3 personalizado / Self-hosted com o guia rápido e os campos da chave
  4. Escolha um dos seus buckets e prima Usar este bucket, ou selecione Criar um novo, escreva um nome (e escolha a região, se for pedida) e prima Criar e preparar. O Nubbo adiciona ao bucket uma regra CORS que só permite carregamentos e transferências a partir da app e mantém as regras que já existiam.

    Passo O seu bucket com a lista de buckets e a opção Criar um novo Passo O seu bucket com a lista de buckets e a opção Criar um novo
  5. Reveja as três verificações, altere o Nome no Nubbo se quiser e prima Concluir. O bucket aparece em Buckets e pode abri-lo no explorador.

    Passo Concluído com as verificações da ligação, do bucket e do CORS Passo Concluído com as verificações da ligação, do bucket e do CORS

Se o Nubbo não conseguir adicionar a regra CORS com a sua chave, o assistente leva-o ao passo CORS. Siga então a secção Adicione a regra CORS.

Ligação com uma chave limitada

Passo 1: prepare o bucket e a chave no seu servidor

  1. Crie o bucket no seu servidor (no MinIO, por exemplo, com mc mb).
  2. Crie uma chave com permissões de leitura e escrita nesse bucket.
  3. Anote o URL do endpoint e a região.

Passo 2: ligue o bucket no Nubbo

  1. Em Buckets, prima Ligar bucket, escolha S3 personalizado / Self-hosted e depois Com uma chave limitada.
  2. Cole a access key, a secret key, o endpoint e a região. Prima Verificar chave.
  3. Escreva o nome exato do bucket e prima Verificar acesso.
  4. O assistente passa ao passo CORS com a regra que tem de adicionar.

Adicione a regra CORS

A regra CORS permite que o navegador carregue e transfira ficheiros do seu bucket em https://nubbo.app. É a mesma regra que o assistente mostra no passo CORS.

A forma de configurar o CORS depende do software:

  • O MinIO (edição comunitária) não aceita CORS por bucket: usa uma definição global (MINIO_API_CORS_ALLOW_ORIGIN) que, por predefinição, permite qualquer origem. Se não a alterou, não tem nada a fazer: prima Já a adicionei, verificar e a verificação passa. Se a alterou, inclua https://nubbo.app.
  • O Ceph e o SeaweedFS aceitam CORS por bucket através da API S3. Aplique esta regra com a ferramenta que costuma usar (por exemplo, aws s3api put-bucket-cors com o seu endpoint) ou deixe o Nubbo fazê-lo no caminho automático.
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
Passo CORS com a regra a adicionar ao bucket Passo CORS com a regra a adicionar ao bucket

Quando a regra estiver pronta, volte ao Nubbo e prima Já a adicionei, verificar. No Ceph e no SeaweedFS, se a sua chave puder alterar o CORS, Tentar configurá-lo por mim faz isso por si.

Se algo correr mal

Mensagem no NubboO que fazer
“Credenciais inválidas. Verifique a chave de acesso e a chave de acesso secreta.”Copie novamente as duas chaves, sem espaços no início nem no fim.
“Esta chave parece limitada a um bucket. Pode continuar pelo caminho limitado ou criar uma chave com acesso total.”Prima Continuar com chave limitada, ou crie uma chave com acesso a toda a conta e prima Experimentar outra chave.
“Bucket não encontrado. Verifique o nome e a região.”Confirme o nome exato do bucket e que a região escolhida é a do bucket.
“A sua chave não tem permissão para criar buckets.”Use uma chave com acesso total, ou crie o bucket no seu painel e prima Já o criei no meu painel.
“Esse nome já está em uso neste fornecedor; experimente outro.”Os nomes de bucket são únicos em todo o fornecedor: escolha outro.
“A sua chave não tem permissão para o configurar.”Adicione a regra CORS manualmente, como explicado acima.
“Ainda não funciona. Reveja a regra e volte a verificar; alguns fornecedores demoram um minuto a aplicá-la.”Confirme que a origem é exatamente https://nubbo.app, sem barra final, espere um minuto e volte a verificar.
“Este bucket já está a ser utilizado.”Esse bucket já está ligado no Nubbo, na sua conta ou noutra.
“Não foi possível alcançar o endpoint S3. Verifique o URL do endpoint.”Confirme que o URL é público, usa HTTPS e responde a partir da internet, e não só a partir da sua rede.
“O URL do endpoint não é válido. Verifique o formato.”Escreva o URL completo com https:// e sem o nome do bucket. Também aparece quando o URL aponta para um endereço privado ou local, ou quando o nome não é resolvido.
“A ligação expirou. Tente novamente.”Confirme a firewall do seu servidor e que a porta é acessível a partir do exterior.

Quanto custa

Se está a comparar o seu próprio armazenamento com um fornecedor, compare preços e limites em S3 vs R2 vs Spaces vs Wasabi vs Backblaze B2.

Perguntas frequentes

Que armazenamento self-hosted funciona com o Nubbo?

Qualquer armazenamento compatível com a API S3 com assinaturas V4, como MinIO, Ceph ou SeaweedFS, e também fornecedores compatíveis com S3 que não estão na lista.

Posso ligar um MinIO da minha rede local?

Não. O endpoint tem de ser um URL público: o Nubbo rejeita endereços privados e locais, e o navegador também precisa de lhe chegar.

Que região uso se o meu servidor não tiver regiões?

us-east-1. É a região predefinida da maioria dos servidores compatíveis com S3.

Porque é que o Nubbo não consegue configurar o CORS no MinIO?

Porque a edição comunitária do MinIO não suporta CORS por bucket. Use uma definição global que, por predefinição, permite qualquer origem, e o Nubbo verifica-a.

Fontes

Os preços e limites vêm das páginas oficiais abaixo. Os fornecedores alteram-nos, por isso confirme antes de se comprometer.