Ir para o conteúdo
CivoCloudManager

Navegue o Civo Object Storage via S3 no macOS.

O endpoint regional, configuração pronta para s3cmd, rclone e a AWS CLI, e o que um cliente nativo faz de diferente.

O Civo Object Storage fala S3, por isso quase qualquer cliente S3 se liga a ele assim que duas coisas estiverem certas: o endpoint da região onde o store vive e uma credencial criada nessa mesma região. A documentação da Civo percorre o s3cmd e deixa o resto do ferramental consigo. Esta página dá a configuração em bruto para s3cmd, rclone e AWS CLI, e depois mostra o caminho do CivoCloudManager, que é ler o endpoint e as chaves de acesso diretamente da API da Civo, sem nada para configurar à mão.

Configurar um cliente S3 para a Civo

  1. 01

    Descubra o endpoint da sua região.

    A Civo constrói os endpoints dos object stores como https://objectstore.<region>.civo.com com o código da região em minúsculas, por isso um store em Londres responde em https://objectstore.lon1.civo.com e um em Frankfurt em https://objectstore.fra1.civo.com. Cada store mostra também o seu endpoint no painel da Civo e devolve-o no campo objectstore_endpoint da REST API. Segundo a página de funcionalidades por região da Civo, há object stores em LON1, FRA1, NYC1 e MUM1, e não em PHX1.

  2. 02

    Crie uma credencial nessa mesma região.

    Todos os object stores da Civo são privados e precisam de um access key ID e de uma secret key. Crie a credencial no painel da Civo, em Object Stores, com o seletor de região na região do store, ou pela Civo CLI. O comando civo objectstore credential export -a <access_key> imprime o par como AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION e AWS_HOST, pronto a colar numa shell.

  3. 03

    s3cmd: host_base e host_bucket.

    Em ~/.s3cfg, dentro de [default], defina host_base = objectstore.fra1.civo.com, host_bucket = objectstore.fra1.civo.com, bucket_location = fra1, use_https = True, signature_v2 = False, mais access_key e secret_key. Dar ao host_bucket o mesmo nome de host que ao host_base mantém o s3cmd em endereçamento por caminho, que é ao que a Civo responde. Depois s3cmd ls lista os seus stores, s3cmd ls s3://STORENAME lista um, s3cmd put file.tar s3://STORENAME/backups/ envia, e s3cmd get -r s3://STORENAME/backups/ traz um prefixo inteiro para baixo. Sem ficheiro de configuração, os mesmos dois valores vão na linha de comandos como --host= e --host-bucket=.

  4. 04

    rclone: um remote do tipo s3, provider Other.

    Corra rclone config e escolha s3, ou escreva o bloco diretamente em ~/.config/rclone/rclone.conf: em [civo] defina type = s3, provider = Other, env_auth = false, access_key_id e secret_access_key da credencial, region = fra1, endpoint = https://objectstore.fra1.civo.com e acl = private. Depois disso, rclone lsd civo: lista os stores, rclone ls civo:STORENAME lista objetos, rclone copy ./dir civo:STORENAME/dir -P sincroniza uma pasta para cima com progresso, e rclone ncdu civo:STORENAME dá um navegador em modo texto. As mesmas definições funcionam como flags avulsas: --s3-provider Other --s3-endpoint https://objectstore.fra1.civo.com --s3-region fra1.

  5. 05

    AWS CLI: --endpoint-url em cada chamada.

    A AWS CLI não precisa de plugin nenhum específico da Civo, só do endpoint em cada comando: aws s3 ls --endpoint-url https://objectstore.fra1.civo.com, depois aws s3 ls s3://STORENAME --endpoint-url ... e aws s3 cp file.tar s3://STORENAME/ --endpoint-url ... . As credenciais vêm de AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY ou de um perfil com nome, com AWS_DEFAULT_REGION definido para o código da região Civo, para o âmbito da Signature V4 bater certo. Uma nota para versões recentes: a AWS CLI 2.23 e posteriores acrescenta por defeito um checksum CRC64NVME aos uploads, que nem todos os endpoints compatíveis com S3 aceitam, por isso se um put falhar com erro de checksum defina AWS_REQUEST_CHECKSUM_CALCULATION=when_required e AWS_RESPONSE_CHECKSUM_VALIDATION=when_required.

A armadilha que custa uma hora: as chaves estão presas a uma região

A documentação da Civo é explícita em duas frases fáceis de saltar: os object stores são específicos da região, e as credenciais para gerir e aceder a object stores estão ligadas à região onde foram criadas. Uma chave feita com o painel em FRA1 não autentica contra o endpoint de LON1, mesmo sendo a mesma conta e a mesma faturação. O sintoma é um erro de autenticação ou de assinatura que parece um erro de escrita no secret, por isso a reação natural é regenerar a chave, o que produz outra chave na mesma região errada. Confirme primeiro o seletor de região, crie a credencial ao lado do store, e só depois desconfie da configuração.

O que a linha de comandos não cobre

Para scripts, backups e CI, o s3cmd, o rclone e a AWS CLI são a resposta certa e nada aqui os substitui. O que não lhe dão é uma vista do store: uma árvore de pastas, tamanhos num relance, uma seleção que pode arrastar para fora. Clientes S3 genéricos para Mac como o Cyberduck ou o Transmit tapam esse buraco, mas não sabem nada sobre a Civo, por isso escreve o endpoint, cola as duas chaves por store e mantém tudo sincronizado à mão sempre que uma credencial roda.

O caminho da app: nenhum endpoint para escrever

O CivoCloudManager autentica-se uma vez com a sua chave de API Civo e lê a lista de object stores da Civo REST API v2, que já traz o endpoint e a credencial associada a cada store. Constrói o cliente S3 a partir daí, por isso não há campo de endpoint, nem chaves para colar, nem ficheiro de configuração. A camada S3 é Swift puro: AWS Signature V4 calculada com o HMAC-SHA256 do CryptoKit, sem SDK da AWS e sem Electron. Faz ListObjects v2 com continuation tokens, navegação por breadcrumbs sobre prefixos comuns, multi-seleção e descarga recursiva de pastas com uma linha de progresso. Sendo honesto quanto ao formato: o navegador lê e descarrega. Enviar e apagar continua a ser trabalho do s3cmd ou do rclone. A app exige macOS 15 ou posterior.

Chaves de acesso atrás do Touch ID em vez de um dotfile

Esta é a parte que justifica uma instalação mesmo que fique com a CLI. Um s3cmd a funcionar significa a secret key em texto simples no ~/.s3cfg, e o mesmo vale para o rclone.conf e o ~/.aws/credentials. Qualquer processo a correr com o seu utilizador consegue ler os três, e qualquer coisa que percorra a sua pasta pessoal também. O CivoCloudManager guarda a chave de API Civo no macOS Keychain, e revelar a secret access key de um object store na interface exige primeiro Touch ID ou a palavra-passe do sistema. O limite é óbvio e vale a pena dizê-lo: no momento em que copia uma chave para um terminal, volta a ser um ficheiro em texto simples.

Pause e Resume para stores que não está a usar

Um store parado continua a faturar o tamanho que tem atribuído. O Pause copia cada objeto para um object store central chamado civo-cloud-manager, aumentando esse vault primeiro se os dados não couberem, compara as chaves e os tamanhos copiados com os da origem, e só apaga o store original quando batem certo. A linha desaparece da fatura Civo. O Resume recria o store com o mesmo nome e a mesma credencial, copia os objetos de volta, verifica outra vez chaves e tamanhos e depois limpa o vault. Movem-se até quatro objetos ao mesmo tempo. Os limites honestos: a verificação compara nomes e tamanhos em vez de calcular hashes do conteúdo, as transferências guardam objetos inteiros em memória, e o manifesto remoto é escrito depois de a origem ser apagada, com um manifesto local como alternativa.

Que cliente para que trabalho

Os quatro falam com a mesma API S3 no mesmo endpoint. A diferença está em onde vive a configuração, onde acaba o secret e o que consegue ver.

Tarefa s3cmdrcloneAWS CLICivoCloudManager
Configuração do endpoint host_base e host_bucket em ~/.s3cfgendpoint no remote--endpoint-url em cada chamadalido da API da Civo
Onde acaba a secret key ~/.s3cfg, texto simplesrclone.conf, texto simples~/.aws/credentials, texto simplesmacOS Keychain, Touch ID para revelar
Navegar um store visualmente nãorclone ncdu, modo textonãosim, navegador com breadcrumbs
Enviar e apagar objetos simsimsimnão no navegador
Descarga recursiva de pastas s3cmd get -rrclone copyaws s3 cp --recursivesim, com progresso
Pôr um store parado em pausa para deixar de pagar nãonãonãosim, vault com verificação antes de apagar
Corre em CI simsimsimnão, é uma app Mac

Civo Object Storage via S3, respondido

Qual é o URL do endpoint do Civo object storage?
Os endpoints dos object stores da Civo seguem o padrão https://objectstore.<region>.civo.com com o código da região em minúsculas, por exemplo https://objectstore.lon1.civo.com em Londres ou https://objectstore.fra1.civo.com em Frankfurt. O endpoint depende da região em que o store foi criado. Cada store mostra também o seu endpoint no painel da Civo e devolve-o no campo objectstore_endpoint da Civo REST API.
Posso usar o s3cmd ou o rclone com o Civo Object Storage?
Sim, os dois funcionam, e a AWS CLI e qualquer outro cliente compatível com S3 também. Para o s3cmd, defina host_base e host_bucket em ~/.s3cfg para o nome de host regional, como objectstore.fra1.civo.com, e preencha access_key e secret_key. Para o rclone, crie um remote com type = s3, provider = Other, endpoint = https://objectstore.fra1.civo.com e o mesmo par de chaves. Para a AWS CLI, passe --endpoint-url https://objectstore.fra1.civo.com em cada comando.
Porque é que a minha chave de acesso ao Civo object storage não funciona?
A causa habitual é a região. A Civo afirma que os object stores são específicos da região e que as credenciais estão ligadas à região onde foram criadas, por isso uma chave criada em FRA1 não autentica contra o endpoint de LON1, mesmo pertencendo à mesma conta. Crie a credencial com o painel na região do store. A segunda causa comum é um cliente que nunca recebeu o endpoint, ou um host_bucket do s3cmd deixado no valor por defeito, com o pedido a ir parar à Amazon em vez da Civo.
Existe uma GUI para o Civo object storage no Mac?
O CivoCloudManager é uma app macOS nativa, macOS 15 ou posterior, na Mac App Store, e conhece a Civo: lê o endpoint e as chaves de acesso de cada store a partir da API da Civo, por isso não há nada para configurar. Navega com breadcrumbs e descarrega ficheiros únicos, uma multi-seleção ou uma pasta inteira recursivamente, enquanto enviar e apagar continua com a CLI. Clientes S3 genéricos como o Cyberduck ou o Transmit também se ligam à Civo depois de escrever o endpoint e colar as duas chaves por store.
O que é que o Pause faz aos meus dados num Civo object store?
O Pause copia cada objeto para um object store central chamado civo-cloud-manager dentro da sua própria conta Civo, compara as chaves e os tamanhos copiados com os da origem e só então apaga o store original para deixar de custar. O Resume recria o store com o mesmo nome e a mesma credencial, copia os objetos de volta e verifica outra vez chaves e tamanhos antes de limpar o vault. Os dados nunca saem da sua conta Civo, e a verificação é por nome e tamanho, não por hash do conteúdo.

Salte a configuração do endpoint.

O CivoCloudManager lê o endpoint e as chaves de acesso da sua própria conta Civo, por isso o store abre em vez de exigir um ficheiro de configuração. Plano gratuito na barra de menus, compra única para o painel completo na Mac App Store.

Descarregar na Mac App Store

Requer macOS 15 (Sequoia) ou posterior.

Voltar à página inicial