Fazendo backup do intervalo de armazenamento do Google Cloud

Fazendo backup do intervalo de armazenamento do Google Cloud

Existe uma maneira de fazer backup regularmente de um bucket em outro para que, caso os arquivos sejam excluídos de um bucket, eles sempre possam ser recuperados de outro?

Responder1

Existem várias opções que você pode considerar para isso.

Primeiramente, você pode criar um job de transferência usando oServiço de transferência de armazenamento(navegue até 'Armazenamento' > 'Transferência'). Isso pode ser configurado para fazer backup automático de dados de um bucket para outro (você também tem a opção de configurar isso para fazer backup de buckets AWS para o Google Cloud Storage). A transferência é uma ferramenta bastante flexível e, entre outras coisas, permite definir arquivos a serem transferidos com base no prefixo do arquivo, horários modificados ou URLs de objetos específicos de destino.

Outra opção seria usar o gsutilcomando para copiar ou sincronizar arquivos de um bucket para outro. Se você quiser automatizar esse processo, poderá adicionar o comando como um cronjob em uma instância e executá-lo nos horários/intervalos escolhidos.

Por exemplo, para copiar tudo em um bucket de origem para um bucket de destino, você poderia usar um comando semelhante a este:

$ gsutil cp -r gs://SOURCE_BUCKET_NAME/* gs://DESTINATION_BUCKET_NAME/

Como alternativa, você pode usar gsutil rsync com a opção -r para sincronizar o conteúdo de um bucket de origem com um bucket de destino. Por exemplo:

$ gsutil rsync -r gs://SOURCE_BUCKET_NAME gs://DESTINATION_BUCKET_NAME/

Se você está preocupado em excluir arquivos, vale a pena dar uma olhadaVersionamento de objetos do Cloud Storage. Se essa funcionalidade estiver habilitada, se os objetos no bucket forem substituídos ou excluídos, uma versão arquivada do objeto original será criada para que, se necessário posteriormente, o objeto original possa ser recuperado. Isso essencialmente protege um objeto contra exclusão acidental.

Vale a pena observar que, com o controle de versão de objeto, cada objeto arquivado ocupa tanto espaço quanto a versão do objeto ativo e é cobrado o mesmo valor pelo armazenamento arquivado e pelo armazenamento ativo. Os objetos arquivados podem ser gerenciados (por exemplo, excluídos automaticamente quando atingem uma determinada idade) utilizandoGerenciamento do ciclo de vida de objetos.

Responder2

Você pode configurar um cron job para backup automático com Cloud Scheduler e Cloud Functions.

Com o Node.js, você pode obter uma lista de nomes de arquivos como este código:

const [sourceFiles] = await sourceBucket.getFiles({
    prefix: 'data/'
});

E então copie os arquivos para outro bucket como este código:

let promises = [];
for (let fileName of sourceFileNames) {
  const copyFilePromise = sourceBucket.file(fileName).copy(destBucket.file(`${dateStr}/${fileName}`));
  promises.push(copyFilePromise);
}
await Promise.all(promises);

informação relacionada