Java 谷歌云存储-如何授权?
我正在拼命尝试从Java访问Google云存储。我的挑战是,我应该创建一个通用库,而基于浏览器的身份验证是不可能的 无论我做什么,它总是告诉我“401未经授权”。我肯定使用了正确的凭证。。。我的Java版本是1.7 代码如下:Java 谷歌云存储-如何授权?,java,api,cloud,storage,google-cloud-storage,Java,Api,Cloud,Storage,Google Cloud Storage,我正在拼命尝试从Java访问Google云存储。我的挑战是,我应该创建一个通用库,而基于浏览器的身份验证是不可能的 无论我做什么,它总是告诉我“401未经授权”。我肯定使用了正确的凭证。。。我的Java版本是1.7 代码如下: GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactor
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(new JacksonFactory())
.setClientSecrets("clientid", "clientsecret").build();
storage = new Storage.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(
"test-name")
.build();
设置相应的客户端id和密码,如控制台所示;然而,我总是告诉我“需要登录”。该库需要从工作进程中使用,因此不可能有人在浏览器窗口中授权应用程序
谢谢
马里奥我相信,就在最近,我们亲自讨论过,这个问题实际上是通过使用谷歌服务帐户解决的,如这里所述: 凭据是这样构建的:
String emailAddress = "123456789000-abc123def456@developer.gserviceaccount.com";
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(emailAddress)
.setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12"))
.setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))
.build();