使用Java在Google App Engine上存储上传的图像

时间:2009-07-08 21:14:31

标签: java google-app-engine image upload

我正在考虑在Google App Engine上编写Java Web应用程序。我希望能够从应用程序上传和提供图像,但只是意识到数据存储区有1MB的限制。这对于体面的照片来说有点太少了。有没有其他方法可以建议你这样做?也许将它们存储为静态内容而不是数据存储区,但似乎没有API。

4 个答案:

答案 0 :(得分:4)

现在可以在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);

答案 1 :(得分:2)

您无法写入App Engine中的文件系统,因此静态内容暂时不存在 - 但是路线图中存储了用于存储和提供blob的API。与此同时,您最好的办法是将文件拆分为块,并将其存储在数据存储区中,或者使用S3等外部服务。

答案 2 :(得分:1)

今天没有简单的方法,但这可以在以后改变。

您现在可以做的最好的事情就是在其问题跟踪器中投票(加星标)添加Google文件系统支持的请求:

答案 3 :(得分:0)

现在,Google App引擎提供的图像API与Blobstore API不同。这是改进的,特别适用于图像。你可以试试。

https://cloud.google.com/appengine/docs/java/images/