Перечислите сегменты, которые соответствуют метке сегмента с помощью gsutil - PullRequest
0 голосов
/ 23 января 2019

Мои облачные хранилища Google помечены

Я не могу найти ничего в документах о том, как сделать gsutil ls, но только фильтрующие корзины с определенной меткой - это возможно?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

A bash единственное решение:

function get_labeled_bucket {
  # list all of the buckets for the current project
  for b in $(gsutil ls); do
    # find the one with your label
    if gsutil label get "${b}" | grep -q '"key": "value"'; then
      # and return its name
      echo "${b}"
    fi
  done
}

Раздел '"key": "value"' - это просто строка, замените ее своим ключом и своим значением. Вызовите функцию с помощью LABELED_BUCKET=$(get_labeled_bucket)

По моему мнению, заставить функцию bash возвращать более одного значения - сложнее, чем стоит. Если вам нужно работать с несколькими сегментами, я бы заменил эхо-код на код, который должен быть запущен.

0 голосов
/ 24 января 2019

В настоящее время невозможно сделать то, что вы хотите, за один шаг. Вы можете сделать это в 3 шага:

  1. получить все ведра вашего проекта GCP.
  2. Получить ярлыки каждого ведра.
  3. Делайте gsutil ls каждого ведра, которое соответствует вашим критериям.

Это мой код на Python 3, который я сделал для вас.

import subprocess
out = subprocess.getoutput("gsutil ls")


for line in out.split('\n'):
    label = subprocess.getoutput("gsutil label get "+line)
    if "YOUR_LABEL" in str(label):
        gsout = subprocess.getoutput("gsutil ls "+line)
        print("Files in "+line+":\n")
        print(gsout)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...