Que puis-je faire pour limiter la taille d'un fichier qui peut être téléchargé? Je sais que je peux limiter le client de celui-ci avec swfupload, mais comment puis-je limiter le serveur de son côté? p>
Comment protéger contre quelqu'un de téléchargement d'un fichier 1 Go et de manger mon quota? p>
3 Réponses :
Mettez le code ci-dessous dans Servlet où vous recevez des données, avant d'appeler DataStore API.
// Determine the HTTP method long maxSize = 1024*1024 * 50; //Limit 50 MB boolean isPostMethod = request.getMethod().equals("POST"); // Verify the content length int contentLength = request.getContentLength(); if (isPostMethod && (contentLength < 0 || contentLength > maxSize)) //posted data size is not in acceptable range else { // Process Data }
Comme l'a dit OP, il utilise l'API de Blobstore d'App BLOBSTore, de sorte que cela ne s'applique pas.
Et d'où il appellera Blobstore API? D'après un servlet? Dites-vous-tu que la ligne de code n'est pas applicable dans App Moteur?
Si vous lisez les documents sur le blobstore (qui est différent de celui du magasin de données), vous verrez qu'aucune des lignes ci-dessus n'est applicable - votre servlet n'accepte pas les données de l'utilisateur, le blobstore fait. Le formulaire que l'utilisateur soumet passe directement au blobstore et non à votre servlet. code.google.com/appengine/docs/java/blobstore/overview. HTML
Vous ne pouvez pas interdire aux personnes de télécharger des fichiers trop volumineux (bien que cela rendrait un bon
J'ai déposé une demande de fonctionnalité - code.google.com/p/googleAppengine/ Problèmes / Détails? ID = 3554
Moteur d'applications 1.5.4 SDK introduit une option pour spécifier une limite sur votre taille de téléchargement de blob. P>
voir maxuploadsizebytes code> et
maxuploadsizebytesperblob code> du UPLOADOPTIONS classe. P>