2009-07-08 14 views
5

Ich möchte eine Java-Webanwendung in Google App Engine schreiben. Ich möchte Bilder aus der App hochladen und bereitstellen können, habe aber festgestellt, dass der Datastore eine Beschränkung von 1 MB aufweist. Das ist etwas zu wenig für anständige Bilder. Gibt es eine alternative Möglichkeit, wie Sie dies vorschlagen können? Vielleicht speichern Sie diese als statischen Inhalt und nicht als Datastore, aber es scheint keine API dafür zu geben.Gespeicherte Bilder auf Google App Engine mit Java speichern

Antwort

4

Jetzt ist es möglich auf GAE. Einfach müssen Sie Ihre Dateien in Blobstore speichern.

<body> 
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data"> 
    <input type="file" name="myFile"> 
    <input type="submit" value="Submit"> 
</form> 

Und dann zu dienen Datei von Servlet: Sie können Ihre Dateien wie folgt laden

public void doGet(HttpServletRequest req, HttpServletResponse res) 
throws IOException { 
    BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
    blobstoreService.serve(blobKey, res); 
1

Es gibt heute keinen einfachen Weg, aber das kann sich später ändern.

Das Beste, was Sie jetzt tun können, ist zu wählen (Stern) der Anfrage Google File System Unterstützung appengine in ihrem issue tracker hinzuzufügen:

2

Sie können nicht in das Dateisystem in App Engine schreiben. Daher sind statische Inhalte vorerst nicht verfügbar. Auf der Roadmap befindet sich jedoch eine API zum Speichern und Bereitstellen von Blobs. In der Zwischenzeit sollten Sie die Datei in Blöcke aufteilen und diese im Datenspeicher speichern oder einen externen Dienst wie S3 verwenden.