【问题标题】:Credentials Java application connect to google cloud datastore凭证 Java 应用程序连接到谷歌云数据存储
【发布时间】:2016-04-22 04:06:03
【问题描述】:

我正在编写一个本地 java 应用程序来访问我的谷歌数据存储。我按照这里的教程http://googlecloudplatform.github.io/gcloud-java/0.2.0/index.html

这是我的基本代码

package myproject;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import com.google.cloud.AuthCredentials;
import com.google.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;
import com.google.cloud.datastore.Entity;
import com.google.cloud.datastore.Key;
import com.google.cloud.datastore.KeyFactory;

public class Main {
    private String projID = "myID";
    public static void main(String[] args) throws IOException {

        System.out.println("correct");
        Main test = new Main();
        Datastore dstore = test.getDatastore();
        KeyFactory keyFactory = dstore.newKeyFactory().kind("keyKind");
        Key key = keyFactory.newKey("keyName");
        Entity entity = Entity.builder(key)
            .set("name", "John Doe")
            .set("age", 30)
            .build();
        dstore.put(entity);

    }

    private Datastore getDatastore() throws IOException {
        File file = new File("./resource/mycredential.json");
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);

            System.out.println("Total file size to read (in bytes) : "
                    + fis.available());

        } catch (IOException e) {
            e.printStackTrace();
        }
        DatastoreOptions options = DatastoreOptions.builder()
                  .projectId(projID)
                  .authCredentials(AuthCredentials.createForJson(fis)).build();
        Datastore datastore = options.service();
        return datastore;
    }
} 

我从云控制台创建了 json 凭据密钥。运行程序后,它显示 com.google.datastore.v1beta3.client.DatastoreFactory makeClient ??:不使用任何凭据

我真的被困在这里了。如何创建正确的凭据并正确使用它? 提前致谢。

【问题讨论】:

    标签: java gcloud google-cloud-datastore


    【解决方案1】:

    这是“INFO”消息,没有任何意义。我同意这很令人困惑,但每次我启动本地程序时都会显示此消息,该程序运行良好 - 连接到数据存储、检索和保存数据等。

    【讨论】:

    • “INFO”消息是什么意思?是的,我检查了云控制台,实体已经存在。
    • 该消息相当混乱,将在未来的版本中消失。此消息来自 gcloud-java 下的库,该库设置了与 Datastore 的连接。 gcloud-java 手动将权限附加到传出的 HTTP 请求,因此当库创建连接时,它认为没有提供凭据。
    • 我怎样才能摆脱这个消息。我想在我的屏幕上显示一些有用的信息。而且这个信息每次都会出现。它确实阻止了有用的信息。
    猜你喜欢
    • 2018-12-03
    • 2021-10-18
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多