Резервное копирование Google Cloud Storage в другой Bucket

0

Я знаю, что есть cronjob, доступный для резервного хранилища данных Google, но есть ли какие-либо простые способы создания cronjob для ежедневного резервного копирования Google Cloud Storage в другое хранилище Cloud Storage?

Я знаю, что могу использовать что-то вроде этого:

gsutil cp -D -R gs://<bucket>/* gs://<backup>/folder

Или я готов кое-что о Object Versioning, но не уверен, что это относится к тому, что я пытаюсь сделать.

Но я хотел бы сделать это в cronjob, используя php appengine, а не в вычислительном движке.

Я знаю, что могу создавать такие объекты: (но есть ли способ легко переносить и копировать данные?)

$document_data = "123456789";
$object_url = "gs://<bucket>/file.ext";
$options = stream_context_create(['gs'=>['acl'=>'private']]);
$my_file = fopen($object_url, 'w', false, $options);
fwrite($my_file, $document_data);
fclose($my_file);
  • 0
    Вы смотрели на gsutil rsync ?
  • 0
    Я сомневаюсь, хочу ли я это сделать или нет. Я бы предпочел иметь ежедневные резервные копии. @ tx802
Теги:
google-cloud-storage
google-app-engine

1 ответ

1

Не существует эквивалентного автоматизированного инструмента GCS, такого как инструмент резервного копирования/восстановления хранилища данных. Cronjob, запущенный на экземпляре GCE, как вы определили, является самым простым способом для выполнения такой задачи.

Версии объектов могут соответствовать вашим потребностям в зависимости от того, почему вы хотите создать резервную копию. Управление версиями объектов работает, сохраняя несколько копий объекта таким образом, что каждый раз, когда вы перезаписываете или удаляете объект, его предыдущее состояние остается в виде объекта с тем же именем, но с другим номером "поколения". Вы также можете настроить облачное хранилище Google для периодического удаления поколений старше определенного времени или с определенным количеством уже существующих поколений.

Это может быть хорошо, если ваше большое беспокойство случайно переписывает важные данные. Или это может быть не очень хорошо, если вы беспокоитесь о случайном удалении всех объектов в вашем ковше, включая старые поколения объектов. Или это может быть не очень хорошо, если вам нужна возможность сбросить ведро в состояние определенного дня.

Если для вас не работает управление версиями объектов, и вы не хотите настраивать cronjob, запущенный gsutil, и вы хотите использовать движок приложения, тогда да, вам придется написать программу, которая выполняет итерацию по всем объектам в вашем ковше и копирует их в другое ведро.

  • 0
    Когда вы говорите «установить cronjob с gsutil», вы имеете в виду, что cronjob, запускающий скрипт, который вызывает вычислительный движок с gsutil, корректен? У меня нет функций cronjob, которые запускают gsutil напрямую.
  • 0
    Это бы сработало, но я хотел настроить запись crontab на самом хосте GCE, указав именно эту строку gsutil.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню