2

我的应用程序生成二进制数据(压缩的 xml)并将其保存到 Google App Engine Blobstore。我想返回一个公共 URL,客户端可以使用它从任何地方访问此二进制文件,而无需通过 AppEngine 和我的 Java servlet。我知道可以使用ImagesService#getServingUrl为图像获取这种 URL ,但是对于其他类型的文件呢?

我像这样创建我的文件:

FileService#createNewBlobFile("application/octet-stream", "myfile.bin");

当我调用 AppEngineFile#getFullPath() 时,我得到如下信息:

/blobstore/writable:a2c0noo4_LNQ0mS6wFdCMA

我可以看到在我的开发文件系统中创建的文件具有不同的随机名称。它的网址是什么?

4

2 回答 2

4

您可以将 Google Cloud Storage 用于您的文件。

然后,您可以为您的文件提供一个公共云存储 URL,让您的客户无需通过 AppEngine 即可下载它。您还可以使用许多不同的 ACL 场景来收紧访问权限,它在文档中。

将 Google Cloud Storage 与 Files API 结合使用。

云存储文档。

于 2012-04-07T02:18:55.767 回答
2

根据文档,blobstore 中的对象没有公共 URL。您只能通过应用程序中的 Blobstore API 访问它。因此,如果您希望每个 blobstore 对象都有一个 URL,则必须为此创建自己的处理程序,这当然必须通过 AppEngine 和您的 Java servlet。

我认为ImagesService#getServingUrl不会为 blobstore 中的图像生成公共 URL。该 URL 并不真正直接指向您的 blobstore 数据。它指向能够访问您的 blobstore 的图像服务,并通过其自己的高性能基础架构为您提供图像。

于 2012-04-07T00:27:02.613 回答