2017-08-08 36 views
1

使用com.google.cloud.google-雲庫(http://googlecloudplatform.github.io/google-cloud-java/0.21.1/index.html),我爲Google Cloud Platform發佈/訂閱提供了以下代碼:Google雲端平臺pub/sub發佈者,如何提供除默認應用程序憑據以外的憑據

TopicName topicName = TopicName.create("projectId...", "topic..."); 
    Publisher pub = Publisher.defaultBuilder(topicName).build(); 

如何提供發佈者使用的憑據?我已經將它們存儲在內存中,因爲它們是通過其他方式提供的,而不是將它們硬編碼到文件中。是

所有使用定製憑證示例如下:

Storage storage = StorageOptions.newBuilder() 
    .setProjectId(PROJECT_ID) 
    .setCredentials(GoogleCredentials.fromStream(
    new FileInputStream(PATH_TO_JSON_KEY))).build(); 
Bucket bucket = storage.create(BucketInfo.of("myBucketName")); 

但沒有PubSubOptions或PublisherOptions類寫類似的代碼(我更換的FileInputStream有一個ByteArrayInputStream)。

這裏是誰的人有同樣的問題,但代碼示例不工作:https://github.com/GoogleCloudPlatform/google-cloud-java/issues/1751

回答

4

您可以設置在Builder的憑據提供:

​​

現在將設置使用的CallSettings。 ..但我不想認爲它將設置設置通道本身時使用的憑據。 (它看起來像Java gRPC代碼和我更熟悉的C#代碼之間可能存在差異。)

+0

此位:「FixedCredentialsProvider.create(憑證)」正是我所需要的!謝謝! – RedShift

+0

後續問題,你是從哪裏得到的?我一直在搜索並閱讀一小時內的文檔: - \ – RedShift

+0

@RedShift:只是瀏覽源代碼 - 但有明顯的優勢,我在C#的客戶端庫團隊工作,而庫不是* *不同...所以我有點知道在哪裏看:)我已經在答案的底部添加了更多的細節。 –

相關問題