<p>We have a java application running in Kubernetes cluster deployment. We're using Google Cloud Bucket as storage. We were using Java Files.move method to move files from our Persistent Volume Claim (PVC) to the storage bucket:</p>

<pre><code>import java.nio.file.Files;

Files.move(source, target, StandardCopyOption.REPLACE_EXISTING)
</code></pre>

<p>But we're getting poor write performance. So we tried exploring <a href="https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-java" rel="nofollow noreferrer">Google Cloud Storage API</a> to move files from our PVC to bucket.</p>

<pre><code>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);
}
</code></pre>

<p>But only "before getService" is getting logged. And nothing happens after that. No exception is thrown. The process gets stuck in getService()</p>

<p>The same application works on local deployment with Google Storage Bucket, but is not working on Kubernetes deployment.</p>

user5155835
<p>For me, updating the version of the Google Storage API fixed the issue. In my Gradle build file, I was using 1.36 and after switching to 1.42, it was working fine.</p>
