簡體   English   中英

使用Storage API從Kubernetes部署進行Google Cloud Bucket連接

[英]Google Cloud Bucket connection from Kubernetes deployment using Storage API

我們有一個Java應用程序在Kubernetes集群部署中運行。 我們正在使用Google Cloud Bucket作為存儲。 我們使用Java Files.move方法將文件從持久卷聲明(PVC)移到存儲桶:

import java.nio.file.Files;

Files.move(source, target, StandardCopyOption.REPLACE_EXISTING)

但是我們的寫入性能越來越差。 因此,我們嘗試探索Google Cloud Storage API ,將文件從PVC移到存儲桶。

try {
    log.info("before getService");

    Storage storage = StorageOptions.newBuilder()
            .setCredentials(GoogleCredentials.create(aToken)).build()
            .getService();

    // aToken is the access token of the service account

    log.info("after getService");
} catch (Exception e) {
    log.error("Error while creating storage object - ", e);
}

但是只有“ before getService”被記錄。 在那之后什么也沒有發生。 沒有異常被拋出。 進程卡在getService()中

相同的應用程序可以在使用Google Storage Bucket的本地部署中使用,但不適用於Kubernetes部署。

對我來說,更新Google Storage API的版本可以解決此問題。 在我的Gradle構建文件中,我使用的是1.36,切換到1.42后,它運行良好。

問題是由於pom.xml中的api版本號(我們正在使用Maven)所致。 在pom.xml中對版本1.23.0進行更改可以解決該問題。

    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.23.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.23.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-jetty</artifactId>
        <version>1.23.0</version>
    </dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM