【发布时间】:2010-11-09 04:35:30
【问题描述】:
我正在考虑在 Google App Engine 上编写 Java Web 应用程序。我希望能够从应用程序上传和提供图像,但刚刚意识到数据存储区有 1MB 的限制。对于像样的照片来说,这有点太少了。您可以建议这样做的替代方法吗?也许将它们存储为静态内容而不是在数据存储中,但似乎没有用于此的 API。
【问题讨论】:
标签: java google-app-engine image upload
我正在考虑在 Google App Engine 上编写 Java Web 应用程序。我希望能够从应用程序上传和提供图像,但刚刚意识到数据存储区有 1MB 的限制。对于像样的照片来说,这有点太少了。您可以建议这样做的替代方法吗?也许将它们存储为静态内容而不是在数据存储中,但似乎没有用于此的 API。
【问题讨论】:
标签: java google-app-engine image upload
现在 Google App enigne 提供了不同于 Blobstore API 的 Image API。这是改进的,专门用于图像。你可以试试。
【讨论】:
现在可以在 GAE 上使用。只需将文件存储在Blobstore。您可以像这样上传文件:
<body>
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<input type="submit" value="Submit">
</form>
然后从 servlet 提供文件:
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
blobstoreService.serve(blobKey, res);
【讨论】:
您无法在 App Engine 中写入文件系统,因此静态内容暂时不可用 - 但用于存储和服务 blob 的 API 已在路线图上。同时,最好的办法是将文件拆分成块,然后将它们存储在数据存储中,或者使用 S3 等外部服务。
【讨论】:
今天没有简单的方法,但以后可能会改变。
您现在可以做的最好的事情是在他们的问题跟踪器中投票(星标)将 Google 文件系统支持添加到 appengine 的请求:
【讨论】: