我正在使用Java客户端,我想列出用户有权访问的所有项目(因为它出现在GCP控制台)。
- 正如文档中所说,建议使用ResourceManager库而不是BigQuery库(BigQuery库没有类来检索项目)-还有另一个名为BigQuery(小q)的库,它有一些调用项目的api,但文档声称它在下面使用ResourceManager。
- 我尝试使用v3库版本的ResourceManager,但显然它总是需要父id,但我不想为上面列出的文件夹提供访问权限,因为在更复杂的架构中,我必须访问所有组织和文件夹,并准备搜索所有项目。我想只列出当前用户可以访问的项目。
- 也有可能使用相同的库,但与v1 api版本的工作原理像一个魅力…但是它已经被弃用了,我不确定它会被支持多久。
- 我不想使用Java以外的任何客户端。
你知道使用ResourceManager的解决方案吗?
显然list
的替换是search
方法与空查询字符串:
ProjectsSettings projectsSettings = ProjectsSettings.newBuilder().build();
ProjectsClient projectsClient = ProjectsClient.create(projectsSettings);
ProjectsClient.SearchProjectsPagedResponse searchProjectsPagedResponse = projectsClient.searchProjects("");
for (Project project : searchProjectsPagedResponse.iterateAll()) {
System.out.println(project.getDisplayName());
};