-3

我们正在考虑使用Google Cloud Storage作为AWS的替代方案,因此计划对GCS进行一些性能测试。我们想测试的功能之一是在特定路径上搜索文件。不幸的是,SDK无法搜索前缀。相反,我们被迫使用Java客户端API。这里是一个失败的相关代码:Google Cloud Service Java客户端配置

GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance()); 
AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService(); 

ListOptions.Builder b = new ListOptions.Builder(); 
b.setRecursive(true); 
b.setPrefix("folder/"); 

ListResult result = gcsService.list("rms-test-bucket", b.build()); 

具体而言,编码滑过上的呼叫以gcsService.list()NullPointerException。我在IntelliJ中附加了所有源代码,遍历代码,发现原因是ApiProxy.getDelegate()返回null,当它应该返回非null值时。

我们怀疑某处存在配置问题,尽管它不清楚它可能是什么。

回答

1

你从哪里运行该代码?这应该在AE标准或AE Flexible compat中运行(因为该API是特定于App Engine的)。对于所有其他情况,您应该使用google-cloud-java client。事实上,即使在AE上,我也会建议使用该客户端,因为它在所有平台上都受支持,而且其功能更丰富。欲了解更多信息,请参阅here

1

我不完全确定您的示例出了什么问题,但如果您的目标严格按照特定路径搜索文件来测试GCS性能,则gsutil命令行实用程序包含该逻辑的可靠实现。你可以用它来评估性能。如果您从GCE实例进行测试,则它已经预装。

相关问题