je les méthodes proposées ici: Creating ZIP archives in Google App Engine (Java)
Et ici How to create a zip archive containing google cloud storage objects within appengine java app? pour retourner un fichier zip, le problème que je vais avoir est que la réponse est plus grand que le permis ~ 30M. Quelle est la meilleure pratique pour y faire face?Comment télécharger un grand Zip de GAE
1
A
Répondre
1
Le moyen le plus optimal sera l'enregistrement dans le compartiment de stockage, puis servez-le à partir de là.
Il vous permet également de:
- préparer fichier à partir d'un travail TaskQueue, qui ne se limite pas à 60 secondes afin que vous puissiez traiter beaucoup plus de données, gérer les erreurs, etc
- donner la capacité de l'utilisateur de faire une pause/reprendre le téléchargement, utilisez un gestionnaire de téléchargement, etc, w/o forcer votre frontend pour commencer le travail dès le début à chaque fois
Fondamentalement, je vous suggère:
- donner utilisateur un TicketID pour tâche d'envoi travail back-end
- à TaskQueue
- préparer les données dans ce travail de back-end, télécharger au stockage Bucket, définissez TicketID comme fait
- navigateur attend que TicketID est marqué comme fait (AJAX de l'API de canal)
- puis un servlet spécial donne ce fichier, à partir d'un stockage
Il sont deux options pour servir ce fichier ultérieurement:
(optimale) Donnez un lien direct vers l'objet Stockage:
- https://storage.googleapis.com/<bucket>/[objet <>]
- https://<bucket> .storage.googleapis.com/[< objet>]
- >]
ou en utilisant Blobstore:
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/<bucket>/<object>");
blobstoreService.serve(blobKey, resp); //where resp is your HttpServletResponse
Si le fichier ZIP est grand que je ne les mêmes problèmes avec le servlet de l'étape 5? – RCB
non, si vous ne le copiez pas manuellement via le servlet. voir la réponse à la mise à jour –
Ma tâche est annulée car j'obtiens un délai d'attente pour accéder à GCService. Les zip sont énormes. – RCB