2009-11-10 6 views
7

Je travaille actuellement sur une application web en utilisant Rails et je voulais voir si quelqu'un connaissait un bon moyen de garder une trace des limites de stockage de fichiers? Nous voulons donner aux utilisateurs une quantité spécifique d'espace qu'ils peuvent utiliser pour télécharger des fichiers et nous utilisons un trombone pour le stockage sur Amazon S3. Des pensées? MerciComment donner aux utilisateurs une limite de stockage de fichiers?

Répondre

7

L'une des colonnes en option vous pouvez utiliser avec paperclip est le OBJECT_file_size que vous pouvez résumer comme

# Assuming a user has many files relationship 
@user.uploads.sum(:image_file_size) 

Quant à l'imposition en fait le bouchon, je vous recommande la création d'une validation personnalisée sur ce que le fichier Ce modèle permet de renvoyer les erreurs et les problèmes au client.

6

Paperclip stocke la taille du fichier.
vous pouvez donc, pour un utilisateur, faire quelque chose comme:

def used_file_size 
    self.files.sum(:document_file_size) 
end 

Vous aurez alors la taille totale des documents de chaque utilisateur.
Vous pouvez ensuite ajouter une limite de taille maximale et ne pas valider le téléchargement du document si l'utilisateur a atteint cette taille.