Google Cloud Service Java客户端配置

时间:2016-09-27 08:24:35

标签: google-app-engine google-cloud-storage google-cloud-platform

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

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()的{​​{1}}调用时滚动。我在IntelliJ中附加了所有来源,逐步完成了代码,并发现原因是调用NullPointerException返回ApiProxy.getDelegate(),当它应该返回非null值时。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我不完全确定您的示例有什么问题,但如果您的目标是严格通过在特定路径上搜索文件来测试GCS性能,那么gsutil命令行实用程序包含一个可靠的实现逻辑。您可以使用它来评估性能。如果您正在从GCE实例进行测试,那么它已经预先安装。