Copia de seguridad del depósito de almacenamiento en la nube de Google

Copia de seguridad del depósito de almacenamiento en la nube de Google

¿Hay alguna manera de hacer una copia de seguridad periódica de un depósito en otro para que, en caso de que los archivos se eliminen de un depósito, siempre puedan recuperarse de otro?

Respuesta1

Hay varias opciones que podrías considerar para esto.

En primer lugar, puede crear un trabajo de transferencia utilizando elServicio de transferencia de almacenamiento(navegue hasta 'Almacenamiento' > 'Transferir'). Esto se puede configurar para realizar una copia de seguridad automática de los datos de un depósito a otro (también tiene la opción de configurar esto para realizar una copia de seguridad de los depósitos de AWS en Google Cloud Storage). Transfer es una herramienta bastante flexible y, entre otras cosas, le permite definir archivos para transferir según el prefijo del archivo, las horas de modificación o las URL de objetos específicos de destino.

Otra opción sería utilizar el gsutilcomando para copiar o sincronizar archivos de un depósito a otro. Si desea automatizar este proceso, puede agregar el comando como un trabajo cronológico en una instancia y ejecutarlo en los momentos/intervalos que elija.

Por ejemplo, para copiar todo lo que hay en un depósito de origen en un depósito de destino, puede usar un comando similar a este:

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

Como alternativa, puedes usar gsutil rsync con el modificador -r para sincronizar el contenido de un depósito de origen con un depósito de destino. Por ejemplo:

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

Si le preocupa eliminar archivos, vale la pena investigarControl de versiones de objetos de almacenamiento en la nube. Si esta funcionalidad está habilitada, si los objetos en el depósito se sobrescriben o eliminan, se crea una versión archivada del objeto original, de modo que, si es necesario en una fecha posterior, se pueda recuperar el objeto original. Básicamente, esto protege un objeto de una eliminación accidental.

Vale la pena señalar que con el control de versiones de objetos cada objeto archivado ocupa tanto espacio como la versión del objeto activo, y se le cobra la misma cantidad por el almacenamiento archivado que por el almacenamiento activo. Los objetos archivados se pueden administrar (por ejemplo, eliminar automáticamente cuando alcanzan una cierta edad) utilizandoGestión del ciclo de vida de los objetos.

Respuesta2

Puede configurar una tarea cron para realizar una copia de seguridad automática con Cloud Scheduler y Cloud Functions.

Con Node.js, puede obtener una lista de nombres de archivos como este código:

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

Y luego copie los archivos a otro depósito 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);

información relacionada