婷婷同學(xué)_
2022-09-14 10:16:02
我正在以下列格式在谷歌云中存儲對象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); }當(dāng)我運行測試時,它給了我以下錯誤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條經(jīng)驗 獲得超3個贊
添加此依賴項解決了問題
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>

波斯汪
TA貢獻1811條經(jīng)驗 獲得超4個贊
我建議按照文檔中的步驟操作,以獲得適用于 Java 的正確客戶端庫。此處當(dāng)前指定的 pom.xml 依賴項如下所示
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.66.0</version>
</dependency>
添加回答
舉報
0/150
提交
取消