Exportar arquivos para a Wasabi com rclone
Use rclone copy para exportar um diretório local para a Wasabi, mantendo os arquivos que já existem
apenas no destino. Depois, use rclone check --download --one-way para comparar os bytes enviados no upload com
seus arquivos locais. Este passo a passo escolhe um bucket privado e um prefixo específico, faz uma
prévia da transferência e transforma os mesmos comandos em uma exportação repetível.
Escolher um bucket e verificar os custos
Você precisa de uma conta na Wasabi, um bucket privado existente, a região de armazenamento dele e chaves de acesso com permissão para listar, fazer upload e ler objetos no prefixo escolhido. Se você não tiver um bucket, crie um primeiro no console da Wasabi. Mantenha o acesso público desativado. Configurar um remote do rclone não cria um bucket; os comandos abaixo usam deliberadamente um bucket existente.
A Wasabi expõe uma API compatível com S3. O preço padrão Pay-Go tem um mínimo mensal de 1 TB e uma duração mínima de armazenamento de 90 dias; excluir objetos antes disso pode gerar cobranças pelos dias restantes. A saída de dados (egress) gratuita se destina a downloads mensais que não ultrapassem o seu volume de armazenamento ativo, e excessos repetidos podem levar a limites no serviço ou à suspensão. As requisições de API gratuitas também seguem uma política de uso razoável. Compare o FAQ de preços da Wasabi com o seu plano antes de fazer upload de dados de teste. Uma exportação minúscula não implica uma fatura mensal minúscula.
Configurar o rclone para a Wasabi
Instalação
Instale o rclone seguindo as instruções oficiais de instalação e depois verifique a versão:
rclone version
Os exemplos de shell usam Bash no Linux. Os comandos de transferência foram testados com o rclone 1.75.1 em um serviço local compatível com S3; isso não verifica as permissões de uma conta ativa da Wasabi nem a conectividade regional. Mantenha o diretório de origem inalterado durante a cópia e a verificação. Estes exemplos exportam arquivos comuns, não um backup completo do sistema de arquivos com permissões e links simbólicos.
Configuração
Inicie a configuração interativa:
rclone config
Use estes valores, seguindo o guia de configuração do rclone da Wasabi. Digite os valores do backend e do provedor em vez de depender dos números do menu, que podem mudar:
- Crie um remote chamado
wasabi. - Defina o backend de armazenamento como
s3e, em seguida, o provedor comoWasabi. - Defina
env_authcomofalsee informe sua chave de acesso e sua chave secreta da Wasabi quando solicitado. Os prompts as chamam de credenciais da AWS porque este é o backend S3. - Deixe
regionvazio, como no guia da Wasabi, e definaendpointcomo a URL do serviço da região real do seu bucket. - Deixe
location_constraintvazio para este bucket existente. Ele é usado ao criar buckets. - Defina
aclcomoprivate, mantenha as outras opções nos valores padrão e salve o remote.
Por exemplo, a US East 1 aceita s3.us-east-1.wasabisys.com ou s3.wasabisys.com; Amsterdã usa
s3.eu-central-1.wasabisys.com. Confira a localização do bucket na
tabela de endpoints da Wasabi.
A URL do console não é um endpoint S3. Uma ACL de objeto privada não desfaz uma política de bucket pública.
Considerações de segurança
Mantenha as credenciais fora de scripts e de argumentos de comandos do shell. Descubra qual arquivo de configuração está realmente em uso com:
rclone config file
Restrinja o acesso a esse arquivo e aos backups dele. Para tarefas agendadas, use um caminho de
configuração explícito por meio de RCLONE_CONFIG ou --config; consulte a
documentação de configuração do rclone. Use uma identidade
dedicada da Wasabi com acesso limitado ao bucket/prefixo pretendido. Uma tarefa de cópia não precisa
de permissão para excluir objetos no destino. O espelhamento opcional mais adiante neste artigo precisa.
Copiar um diretório e verificar o conteúdo
Copiar arquivos
Em uma única sessão do Bash, defina um caminho de origem local absoluto e substitua o nome do bucket
abaixo. Use um prefixo reservado para esta exportação, como exports/project-a, em vez da raiz do bucket:
src='/absolute/path/to/export'
dst='wasabi:your-existing-bucket/exports/project-a'
rclone lsf "$dst" --recursive
Uma listagem vazia pode indicar um prefixo novo; um código de saída diferente de zero significa que você precisa resolver o erro antes de continuar. Faça uma prévia dos arquivos selecionados sem fazer upload:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
A opção --s3-no-check-bucket impede que o rclone verifique a
existência de um bucket ou tente criá-lo. Um nome de bucket digitado errado ainda falha quando acessado.
--checksum compara o tamanho e os checksums disponíveis ao decidir se deve substituir um arquivo.
copy preserva objetos que existem apenas no destino, mas pode sobrescrever um objeto existente
com o mesmo nome. Não é um backup com versionamento. Consulte a referência do comando copy.
Quando a prévia mostrar a origem e o prefixo pretendidos, execute a cópia e depois a verificação:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' &&
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
O conteúdo do diretório vai diretamente para o prefixo: report.pdf se torna
exports/project-a/report.pdf, sem um diretório export/ extra. Diretórios vazios não
viram objetos. Uma origem vazia pode ser concluída com sucesso sem transferir nada; confirme que você
selecionou os arquivos esperados.
Reler os bytes após o upload
check --download lê os dados remotos e os compara com
os arquivos locais. Ele não depende apenas de metadados de objetos ou ETags. --one-way permite
arquivos extras no destino, de acordo com a política de cópia. O mesmo filtro deve aparecer nos dois
comandos.
Sucesso significa que os arquivos de origem incluídos correspondem aos equivalentes remotos no momento da verificação. Uma divergência, um objeto ausente ou um erro de leitura produz um status de saída diferente de zero. A verificação faz download dos objetos incluídos, então reserve tempo e largura de banda e considere esse tráfego na política de saída de dados da Wasabi. Para uma origem não vazia, espere uma contagem de arquivos correspondentes e nenhuma diferença.
Ajustar o que é transferido
Filtrar arquivos
O padrão --exclude '*.tmp' entre aspas ignora arquivos temporários em qualquer profundidade. As aspas
impedem que o Bash expanda o padrão antes de o rclone vê-lo. Deixar um arquivo de fora do copy
mantém intacta qualquer cópia remota existente. Se você mudar a seleção, aplique o mesmo
filtro à prévia, à cópia e à verificação.
Transferências paralelas
Por padrão, o rclone faz quatro transferências de arquivos simultâneas. Adicione --transfers=8 ao comando
de cópia se medições mostrarem que isso ajuda na sua carga de trabalho; mais concorrência também pode
aumentar o uso de recursos. Consulte a opção --transfers.
Controle de largura de banda
Adicione --bwlimit=10M para limitar a largura de banda da transferência a 10 MiB/s. Aplique-o também à
verificação por download se ela precisar respeitar o mesmo limite. A
documentação de largura de banda do rclone também aborda agendamentos.
Repetir a exportação verificada
Salve isto como export-to-wasabi.sh. Ele aceita a mesma origem e o mesmo destino dos comandos
manuais, rejeita um diretório de origem inexistente e para se a cópia ou a verificação falhar:
#!/usr/bin/env bash
set -euo pipefail
src=${1:?Pass a local source directory}
dst=${2:?Pass a wasabi:bucket/prefix destination}
if [[ ! -d "$src" ]]; then
printf 'Source directory does not exist: %s\n' "$src" >&2
exit 1
fi
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
Execute-o com os caminhos já selecionados:
bash ./export-to-wasabi.sh "$src" "$dst"
Para um agendador, informe caminhos absolutos para o Bash, o script, a origem e o arquivo de
configuração. Garanta que o rclone esteja no PATH da tarefa, capture a saída e trate um status
diferente de zero como uma exportação com falha. Evite execuções sobrepostas. Uma nova execução pode
substituir arquivos alterados, mas os arquivos removidos localmente permanecem no bucket. Agende este
script de cópia apenas se esse comportamento de retenção atender às suas necessidades.
Sincronizar arquivos
Use um espelhamento apenas quando os arquivos que existem só no destino devem ser excluídos. Com os
mesmos src e dst,
rclone sync altera apenas o prefixo de destino escolhido.
Se ele contiver um old-report.pdf que não existe localmente, copy o mantém e sync o remove.
Objetos fora de exports/project-a/ estão fora do escopo deste comando.
Faça uma prévia do espelhamento separadamente:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
Leia as exclusões planejadas e confira os dois caminhos novamente. Uma origem existente, mas vazia,
pode excluir todos os objetos incluídos no prefixo de destino. Os objetos .tmp filtrados permanecem
porque este comando não usa --delete-excluded. Uma prévia não congela a origem nem o destino.
Somente se essas exclusões forem intencionais, execute:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
Isso exige permissão de exclusão. Configurações de retenção de objetos podem bloquear a exclusão, e a duração mínima de armazenamento da Wasabi pode gerar cobranças após a exclusão. Mantenha essa escolha separada do script de exportação que não exclui nada.
Diagnosticar uma exportação com falha
Problemas comuns
- Acesso negado: verifique as credenciais e as permissões para este bucket/prefixo. Uma listagem
bem-sucedida não comprova permissão de upload ou download. Listar todos os buckets com
rclone lsd wasabi:pode ser negado mesmo quando o acesso ao bucket escolhido funciona. - Endpoint errado ou erros de assinatura: compare o endpoint do remote com a região do bucket e verifique o relógio da máquina. Uma redefinição de conexão, por si só, não identifica uma incompatibilidade de região.
- Configuração ausente em uma tarefa: execute com o caminho
RCLONE_CONFIGou--configpretendido e confirme que o usuário da tarefa consegue lê-lo. - Diferenças na verificação: mantenha os arquivos de origem estáveis, confirme que os dois comandos usam os mesmos filtros e investigue os nomes de arquivo informados antes de aceitar a exportação.
Depuração
Adicione -v ao comando que está falhando para obter informações por arquivo. Use -vv para logs de
depuração quando necessário e oculte credenciais, caminhos sensíveis e nomes de objetos antes de
compartilhar os logs. Uma simulação (dry run) verifica as ações planejadas; ela não prova que a
Wasabi vai autorizar as gravações posteriores.
Se você precisar exportar os resultados de um fluxo de trabalho da Transloadit, consulte o Robot 🤖 /wasabi/store no nosso serviço de exportação de arquivos.
