Как удалить, изменить класс хранилища, заархивировать каталоги и папки под облачным хранилищем - PullRequest
0 голосов
/ 29 октября 2018

Я бы хотел выполнить следующее действие в облачном хранилище Google с помощью облачных функций

1.Delete files older than 30 days
2.For Required directories should move to storage class Codeline 
3.Achieve all directories under the bucket

1 Ответ

0 голосов
/ 30 октября 2018

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

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

...