Sichern des Google Cloud Storage Buckets

Sichern des Google Cloud Storage Buckets

Gibt es eine Möglichkeit, regelmäßig ein Backup eines Buckets in einem anderen zu erstellen, sodass Dateien, die aus einem Bucket gelöscht werden, immer aus einem anderen wiederhergestellt werden können?

Antwort1

Hierzu können Sie mehrere Optionen in Betracht ziehen.

Zunächst können Sie einen Transferauftrag erstellen mit demSpeichertransferdienst(navigieren Sie zu „Speicher“ > „Übertragen“). Dies kann so konfiguriert werden, dass Daten automatisch von einem Bucket in einen anderen gesichert werden (Sie haben auch die Möglichkeit, dies so zu konfigurieren, dass AWS-Buckets in Google Cloud Storage gesichert werden). Transfer ist ein ziemlich flexibles Tool und ermöglicht Ihnen unter anderem, zu übertragende Dateien basierend auf Dateipräfix, Änderungszeit oder zielspezifischen Objekt-URLs zu definieren.

Eine andere Möglichkeit wäre, den gsutilBefehl zum Kopieren oder Synchronisieren von Dateien von einem Bucket in einen anderen zu verwenden. Wenn Sie diesen Vorgang automatisieren möchten, können Sie den Befehl als Cronjob auf einer Instanz hinzufügen und ihn zu den von Ihnen gewählten Zeiten/Intervallen ausführen.

Um beispielsweise alles in einem Quell-Bucket in einen Ziel-Bucket zu kopieren, können Sie einen Befehl ähnlich diesem verwenden:

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

Alternativ können Sie gsutil rsync mit dem Schalter -r verwenden, um den Inhalt eines Quell-Buckets mit einem Ziel-Bucket zu synchronisieren. Beispiel:

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

Wenn Sie sich Sorgen über das Löschen von Dateien machen, lohnt es sich, einen Blick darauf zu werfenVersionierung von Cloud Storage-Objekten. Wenn diese Funktion aktiviert ist und Objekte im Bucket überschrieben oder gelöscht werden, wird eine archivierte Version des Originalobjekts erstellt, sodass das Originalobjekt bei Bedarf zu einem späteren Zeitpunkt abgerufen werden kann. Dies schützt ein Objekt im Wesentlichen vor versehentlichem Löschen.

Beachten Sie bei der Objektversionierung, dass jedes archivierte Objekt genauso viel Speicherplatz beansprucht wie die Live-Objektversion und dass Ihnen für den archivierten Speicher der gleiche Betrag berechnet wird wie für den Live-Speicher. Die archivierten Objekte können verwaltet werden (z. B. automatisch gelöscht werden, wenn sie ein bestimmtes Alter erreichen), indem SieObjekt-Lebenszyklus-Management.

Antwort2

Sie können mit Cloud Scheduler und Cloud Functions einen Cron-Job für die automatische Sicherung einrichten.

Mit Node.js können Sie eine Liste von Dateinamen wie diesen Code erhalten:

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

Und kopieren Sie die Dateien dann mit diesem Code in einen anderen Bucket:

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

verwandte Informationen