Задержка окончательного удаления из корзины облачного хранилища Google - PullRequest
0 голосов
/ 10 марта 2020

Я хочу убедиться, что у удаленных файлов есть окно восстановления. Я хотел бы использовать примитивы, предлагаемые облачным хранилищем Google, чтобы мне не приходилось поддерживать лог c, необходимый для предотвращения невозможности восстановления файлов, удаленных по ошибке.

Я не вижу лучшего способа достичь, чем делать:

  1. создать normal корзину для файлов, которые отображаются для пользователей
  2. создать trash корзина для файлов, ожидающих постоянного удаления с правилом жизненного цикла , которое удаляет объекты через N дней создания
  3. по запросу на удаление файла из корзины normal, сначала копируя файлы в корзину trash, затем удаление файла из normal bucket

Что такое "idiomati c" способ реализации облачного хранилища GCP с отложенным постоянным удалением?

ПРИМЕЧАНИЕ. пытаясь избежать заданий chron или дополнительного взаимодействия с базой данных

ПРИМЕЧАНИЕ: это не мягкое удаление, поскольку ожидается, что файл будет окончательно удален без какой-либо трассировки / хранилища, связанных с ним

1 Ответ

0 голосов
/ 10 марта 2020

Вы можете хранить все файлы в одном и том же контейнере следующим образом:

  1. Каждый файл также указан в базе данных, к которой вы обращаетесь для создания пользовательского интерфейса.
  2. Вы можете написать бэкэнд-код для управления корзиной - peoeple не имеет дело с файлами напрямую с Cloud Storage SDK.

Он использует Cloud Tasks для планирования удаления:

  1. Пользователь запрашивает удаление файла.
  2. Файл помечен как «удаленный» в базе данных, фактически не удален из корзины.
  3. Использование Облачные задачи чтобы запланировать фактическое удаление через 5 дней.
  4. По расписанию задача запускает функцию, которая удаляет файл и его запись в базе данных.

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

...