Как определить, какие все папки в корзине gcp содержат файл с определенным именем, используя java api

#java #google-cloud-platform

#java #google-облачная платформа

Вопрос:

У меня есть корзина облачного хранилища Google со следующей структурой Gs://myBucket/folder1/1.txt Gs://myBucket/folder2/1.txt Gs://myBucket/folder3/3.txt

Я хотел бы знать, используя Java api, какие все папки содержат файл с именем 1.txt . в моем приведенном выше примере это будут folder1 и folder2

Ответ №1:

Папки не являются ресурсом в облачном хранилище Google (GCS), см. раздел Папки.

Единственный ресурс, который могут содержать сегменты, — это Объекты.

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

Имена объектов допускают «/», и многие инструменты отображают это так, как если бы это был разделитель путей к каталогу (но на самом деле это не так).

Вам нужно будет выполнить итерацию по каждому объекту (см.: Сопоставление списка и шаблона для каждого имени объекта, заканчивающегося, например 1.txt .

Комментарии:

1. Разве в java API нет способа, подобного тому, что мы имеем в облачной оболочке: gsutil ls gs://myBucket/*/1.txt

2. Возможно. С gcloud помощью вы можете добавить --log-http , чтобы увидеть базовые вызовы REST, знаете ли вы, есть ли эквивалент с gsutil помощью? Это может показать, как он этого достигает.

3. Похоже, вы можете использовать -D with gsutil для получения сведений о HTTP