Google app engine 如何使用云存储库在开发服务器上使用BlobstoreService上载的文件?

Google app engine 如何使用云存储库在开发服务器上使用BlobstoreService上载的文件?,google-app-engine,Google App Engine,在本地开发服务器上,我将一个文件上载到GCS bucket(在创建上载URL时使用withGoogleStorageBucketName),并在回调文件信息中。getGsObjectName()返回一个以“fake-encoded_gs_key:”开头的名称。我可以使用该名称为BlobstoreService提供文件服务,但当我尝试使用云存储客户端库来使用该名称(以及我上载到的同一个bucket)时,例如复制它,我会得到: java.io.FileNotFoundException: com.g

在本地开发服务器上,我将一个文件上载到GCS bucket(在创建上载URL时使用withGoogleStorageBucketName),并在回调文件信息中。getGsObjectName()返回一个以“fake-encoded_gs_key:”开头的名称。我可以使用该名称为BlobstoreService提供文件服务,但当我尝试使用云存储客户端库来使用该名称(以及我上载到的同一个bucket)时,例如复制它,我会得到:

java.io.FileNotFoundException: com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService@6117755b: No such file: GcsFilename(app_default_bucket, fake-encoded_gs_key:YXB...281)
在/target/appname/WEB-INF/appengine generated/下,将创建一个名称以“encoded_gs_key:”开头的文件,该文件后面的长部分与前面提到的“fake-encoded_gs_key:”后面的长部分不同


如何在开发服务器上执行此操作?

您可能会遇到以下错误:

开发服务器无法为Google存储文件提供服务

您必须同时使用云存储库和BlobstoreAPI吗?如果不是,为什么不直接使用没有BlobstoreService的云存储库呢。请尝试以下默认情况下仅使用客户端库的示例:


您好,欢迎光临。请考虑为这个答案添加更多的细节。特别要确保链接中的重要信息包含在这篇文章中或被引用。谢谢,JasonMArcher。我在这里加了一些相关的引语,谢谢!这有助于使它成为一个更好的资源。谢谢,我主演了这个问题,并将等待谷歌的解决方案。我确实需要使用这两种API—我使用Blobstore进行高效的上传和缩略图生成,并使用云存储在服务器端复制和获取内容。我的解决方法是检查我是否在开发环境中,如果是,从blob中获取字节并创建一个具有相同字节内容的CS对象。
// Create object via client library.
GcsService gcsService = GcsServiceFactory.createGcsService();
GcsFilename filename = new GcsFilename(BUCKETNAME, FILENAME);
gcsService.createOrReplace(filename, GcsFileOptions.getDefaultInstance());
....
// Read object via client library.
GcsInputChannel readChannel = gcsService.openReadChannel(filename, 0);