如何在本地开发环境中从 App Engine 访问 Google Cloud Storage?
How to access Google Cloud Storage from App Engine in local development environment?
我的代码在已部署的 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)
没有访问本地主机上的 Google 云存储的解决方法。您必须在 appengine 部署代码,然后才能访问 GCS 服务。这是来自 google 的安全服务,无法在本地主机上访问。
我的代码在已部署的 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)
没有访问本地主机上的 Google 云存储的解决方法。您必须在 appengine 部署代码,然后才能访问 GCS 服务。这是来自 google 的安全服务,无法在本地主机上访问。