6
votes

APP Moteur Blobstore - Que puis-je faire pour limiter la taille d'un fichier qu'un utilisateur peut télécharger?

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é?

Comment protéger contre quelqu'un de téléchargement d'un fichier 1 Go et de manger mon quota?


0 commentaires

3 Réponses :


-1
votes

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
}


3 commentaires

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



2
votes

Vous ne pouvez pas interdire aux personnes de télécharger des fichiers trop volumineux (bien que cela rendrait un bon Demande de fonctionnalité ). Ce que vous pouvez faire est de vérifier la taille du blob téléchargé et de la supprimer immédiatement si c'est trop grand.


1 commentaires

J'ai déposé une demande de fonctionnalité - code.google.com/p/googleAppengine/ Problèmes / Détails? ID = 3554



7
votes

Moteur d'applications 1.5.4 SDK introduit une option pour spécifier une limite sur votre taille de téléchargement de blob.

voir maxuploadsizebytes et maxuploadsizebytesperblob du UPLOADOPTIONS classe.


0 commentaires