1.Удаление файлов старше 30 дней
Вы можете использовать правила жизненного цикла, чтобы Google Cloud Storage автоматически удаляла файлы старше 30 дней:
https://cloud.google.com/storage/docs/managing-lifecycles
Никаких функций или дополнительного кода не требуется.
2.Для обязательных каталогов следует перейти к классу хранения Codeline
3. Получить все каталоги под корзиной
Звучит так, будто вы хотите делать это периодически, а не один раз? Потому что, если вы хотите сделать это один раз, вы можете просто использовать gsutil
для выполнения этих изменений.
Обратите внимание, что GCS не имеет каталогов, вы можете создать объект с именем foo/bar/baz
, не создавая foo
или foo/bar
"каталогов", и фактически вы можете иметь объекты с именами foo/bar
и * 1025. * и foo/bar///
и foo/bar/.././
и все они будут разными объектами. Сказав это, можно рассматривать все объекты, имеющие общий префикс, как «каталог», но вы должны понимать разницу.
Правила жизненного цикла объектов также могут перемещать объекты старше X в другой класс хранения, но вы не можете указать префикс, они применяются к полному сегменту. Если вы хотите применить это к определенным каталогам, вам нужно написать некоторый код.
AFAIK, периодические триггеры для Google Cloud Functions отсутствуют. Так что никакой помощи там нет. Вы можете развернуть небольшое приложение Google App Engine, которое периодически запускается:
https://cloud.google.com/appengine/docs/standard/python/config/cron
Вам нужно будет написать код, который читает объекты в корзине для «необходимых каталогов».