#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
withgsutil
для получения сведений о HTTP