habe ich die hier vorgeschlagenen Methoden: Creating ZIP archives in Google App Engine (Java)
Und hier How to create a zip archive containing google cloud storage objects within appengine java app? eine Zip-Datei zurück, das Problem, das ich habe, ist, dass die Antwort ist größer als die erlaubten ~ 30M. Was ist die beste Vorgehensweise, um damit umzugehen?Wie eine große Zip von GAE zum Download
1
A
Antwort
1
Der optimale Weg wird in Storage Bucket gespeichert und dann von dort aus bedient.
Es erlaubt Ihnen auch zu:
- vorbereiten Datei von einem Taskqueue Job, der auf 60 Sekunden beschränkt ist, so dass Sie viel mehr Daten verarbeiten kann, behandeln Fehler, etc
- geben Benutzer Fähigkeit zu pausieren/Download fortsetzen, einen Download-Manager verwenden, etc, w/Frontend o zwingt den Job von Anfang an jedes Mal
Grundsätzlich ich schlage zu starten:
- geben Benutzer ein ticketId für Back-End-Job
- send Aufgabe Taskqueue
- Daten in diesem Backend Job vorbereiten, um Storage-Bucket laden, stellen ticketId als getan
- Browser wartet, bis ticketId ist markiert als getan (AJAX der Kanal-API)
- dann gibt ein spezielles Servlet diese Datei aus einem Speicher
sind es zwei Möglichkeiten diese Datei später dienen:
(optimal) Geben Sie einen Link direkt zu Storage-Objekt:
- https://storage.googleapis.com/<bucket>/[< object>]
- https://<bucket> .storage.googleapis.com/[ Objekt>]
- https://yourdomain.if.set.for.the.bucket/[<object>]
oder mit Blobstore:
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/<bucket>/<object>");
blobstoreService.serve(blobKey, resp); //where resp is your HttpServletResponse
Wenn die ZIP-Datei ist groß nicht ich die gleichen Probleme mit dem Servlet aus Schritt 5 haben? – RCB
Nein, wenn Sie es nicht manuell über Servlet kopieren. siehe Antwortupdate –
Meine Aufgabe wird abgebrochen, weil ich beim Zugriff auf den GCService Timeout erhalte. Die Zip's sind riesig. – RCB