Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌云存储-如何授权?_Java_Api_Cloud_Storage_Google Cloud Storage - Fatal编程技术网

Java 谷歌云存储-如何授权?

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

我正在拼命尝试从Java访问Google云存储。我的挑战是,我应该创建一个通用库,而基于浏览器的身份验证是不可能的

无论我做什么,它总是告诉我“401未经授权”。我肯定使用了正确的凭证。。。我的Java版本是1.7

代码如下:

        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();