如何在本地开发环境中从App Engine访问Google云端存储?

时间:2015-01-05 15:20:48

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

我的代码在已部署的Google App Engine上运行完美,但在本地调试时则无法运行。返回的GcsFileMetadata为null,gcsService.openReadChannel(gcsFilename,0)给出FileNotFoundException,下面有更多详细信息。 总而言之,问题是本地应用引擎无法访问Google云端存储。我该如何解决这个问题?有任何变通方法吗?

以下是代码

GcsFilename gcsFilename = new GcsFilename(BUCKET_NAME, progress.imageName);

GcsFileMetadata gcsFileMetadata = gcsService.getMetadata(gcsFilename);

if (gcsFileMetadata == null) throw new Exception("gcsService.getMetadata(gcsFilename) returned null");

int fileSize = (int) gcsFileMetadata.getLength();

ByteBuffer byteBuffer = ByteBuffer.allocate(5*1024*1024);
GcsInputChannel gcsInputChannel = gcsService.openReadChannel(gcsFilename, 0);
gcsInputChannel.read(byteBuffer);

gcsFileMetadata在本地调试时为null,但在部署时工作正常。我发表评论并在此行收到以下错误:

GcsInputChannel gcsInputChannel = gcsService.openReadChannel(gcsFilename, 0);

以下是错误:

java.io.FileNotFoundException: com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService@54381103: No such file: GcsFilename(cloudimagesbucketname, image_20150105_180444)

1 个答案:

答案 0 :(得分:1)

无法通过localhost访问Google云端存储。您必须在appengine部署代码,然后才能访问GCS服务。这是来自谷歌的安全服务,无法在localhost访问。