【问题标题】:NoSuchMethod on reading file from a GCP BucketNoSuchMethod 从 GCP 存储桶中读取文件
【发布时间】:2019-09-20 19:21:38
【问题描述】:

我正在尝试使用此代码从 Google Cloud Storage 存储桶中读取文件

Blob blob = storage.get(BlobId.of(Constants.GCS_BUCKET, srcFilename));
printBlob(blob.reader());
private void printBlob(ReadChannel reader) {
    try {
        WritableByteChannel outChannel = Channels.newChannel(System.out);
        ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
        while (reader. read(bytes) > 0) {
            bytes.flip();
            outChannel.write(bytes);
            bytes.clear();
        }
    }
    catch (Exception e) {

    }

}

在执行reader.read(bytes)时代码会抛出这个异常

[INFO] GCLOUD: Caused by: 
[INFO] GCLOUD: java.lang.NoSuchMethodError: com.google.api.services.storage.Storage$Objects$Get.setReturnRawInputStream(Z)Lcom/google/api/client/googleapis/services/AbstractGoogleClientRequest;
[INFO] GCLOUD:  at com.google.cloud.storage.spi.v1.HttpStorageRpc.createReadRequest(HttpStorageRpc.java:658)
[INFO] GCLOUD:  at com.google.cloud.storage.spi.v1.HttpStorageRpc.read(HttpStorageRpc.java:693)
[INFO] GCLOUD:  at com.google.cloud.storage.BlobReadChannel$1.call(BlobReadChannel.java:127)
[INFO] GCLOUD:  at com.google.cloud.storage.BlobReadChannel$1.call(BlobReadChannel.java:124)

【问题讨论】:

  • 下载文件时也会出现 -> blob.downloadTo(Paths.get("/tmp/"+srcFilename));
  • 你在学习任何教程吗?

标签: java google-cloud-platform


【解决方案1】:

解决了。 需要用到依赖

    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-core-http</artifactId>
        <version>1.91.0</version>
    </dependency>

如果您使用 1.90.0,它会崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-27
    • 2020-03-04
    • 1970-01-01
    • 2021-03-12
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多