【发布时间】:2020-06-22 08:34:01
【问题描述】:
我无法使用 java sdk 创建谷歌云存储桶,下面是我正在使用的代码:
public class App
{
public static void main(String... args) throws Exception {
String projectId = "**********";
Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
Page<Bucket> buckets = storage.list();
for (Bucket bucket : buckets.iterateAll()) {
System.out.println(bucket.getName());
}
}
}
这是我收到的错误消息:
原因: com.google.api.client.googleapis.json.GoogleJsonResponseException:401 未经授权{“代码”:401,“错误”:[{ “域”:“全球”, “位置”:“授权”, “位置类型”:“标题”, "message" : "匿名调用者没有 storage.buckets.list 对项目 833568054484 的访问权限。", "reason" : "required" } ], "message" : "匿名调用者没有 storage.buckets.list 对项目 833568054484 的访问权限。" }
【问题讨论】:
-
很明显,您试图在不进行身份验证的情况下列出存储桶,而匿名用户无权执行此操作。
-
@StephenC 但项目 id 有必要的权限 String projectId = "**********";存储存储 = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); Page
buckets = storage.list(); for (桶桶: buckets.iterateAll()) { System.out.println(bucket.getName()); } -
除了授予我使用的项目 ID 许可之外,我还需要做任何事情吗?
-
1) 将代码放入问题中。 2)显然,您返回的错误是说您尚未进行身份验证。未经身份验证的用户无法执行您尝试执行的操作。您需要进行身份验证。
-
如何进行身份验证?
标签: java google-cloud-platform google-cloud-storage