我正在以下列格式在谷歌云中存储对象bucketname/UUID/object例如,我在谷歌云中有一个对象,存储为roshanbucket/1fa0e7b4-b551-4e5c-a491-8d86f06a1eef/test.txt这是我用来返回对象名称的方法public String getFileName(String bucketName, String uuid) { final String[] fileName = {null}; Page<Blob> blobs = storage.list(bucketName, BlobListOption.prefix(uuid)); blobs.iterateAll().forEach( blob -> fileName[0] = blob.getName()//.substring(blob.getName().lastIndexOf('/') + 1) ); return fileName[0]; }这是测试方法@Test public void testGetFileName(){ String fileName = googleCloudStorage.getFileName("roshanbucket", "1fa0e7b4-b551-4e5c-a491-8d86f06a1eef"); System.out.println(fileName); }当我运行测试时,它给了我以下错误java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)Vat com.google.cloud.storage.StorageImpl.optionMap(StorageImpl.java:1279)at com.google.cloud.storage.StorageImpl.optionMap(StorageImpl.java:1268)at com.google.cloud.storage.StorageImpl.optionMap(StorageImpl.java:1301)at com.google.cloud.storage.StorageImpl.list(StorageImpl.java:306)at services.fileserver.GoogleCloudStorage.getFileName(GoogleCloudStorage.java:76)at services.fileserver.GoogleCloudStorageTest.testDownloadLink(GoogleCloudStorageTest.java:40)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)如何解决此问题?
3 回答
米脂
TA贡献1836条经验 获得超3个赞
添加此依赖项解决了问题
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
波斯汪
TA贡献1811条经验 获得超4个赞
我建议按照文档中的步骤操作,以获得适用于 Java 的正确客户端库。此处当前指定的 pom.xml 依赖项如下所示
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.66.0</version>
</dependency>
添加回答
举报
0/150
提交
取消