2010-01-17 4 views
0

Dans mon application web, chaque utilisateur aura un logo. Je suis sûr que chaque utilisateur aura également une galerie de photos à l'avenir. Quel est le meilleur moyen de mettre en place une structure de répertoires pour gérer les logos des utilisateurs et éventuellement d'autres actifs tels que des photos? Aussi serait bon d'obtenir l'opinion des gens sur ce qu'il faut stocker dans la base de données. Mon application est une application Rails.A quoi doit ressembler ma structure de répertoire pour les ressources utilisateur dans une application Web?

Pour être clair, cette application Web devra évoluer vers des centaines de milliers d'utilisateurs.

Répondre

2

Il existe des plugins qui offrent une fonctionnalité ininterrompue pour les choses que vous cherchez à faire. Essentiellement, ils fonctionnent de manière similaire à ce que suggère Pindatjuh. Mais vous devriez vérifier attachment-fu et paperclip pour voir comment les autres l'ont fait.

+0

ok, je ne connaissais pas la structure de dir manipulée. va vérifier – Tony

+0

Pas tellement qu'ils gèrent la structure du répertoire. Mais ils fournissent des valeurs par défaut raisonnables pour placer et récupérer des pièces jointes telles que des images. – EmFi

0

Si c'est une petite application web et vous avez une base de données:

Un dossier contenant tous les avatars (logos). Dans la base de données, vous définissez le nom de fichier de l'avatar. Aussi un autre dossier contenant toutes les photos dans une galerie. Dans la base de données, vous avez une entrée pour chaque actif, pointant vers la ressource et l'utilisateur.

Si c'est une application plus grande ou en croissance, vous pouvez créer automatiquement plus de dossiers (script: chaque 100 fichiers créent un nouveau dossier), ou même équilibrer la charge en ayant plus d'un serveur fournissant uniquement des ressources.

Si vous ne disposez pas d'une base de données:

Créer un dossier par utilisateur, qui contient leur avatar et actifs. Celui-ci ne grossit pas, car vous n'avez pas de base de données qui pointe vers les actifs de l'utilisateur: si vous avez plus d'un serveur, vous ne pouvez pas dire "quel" serveur les ressources sont sur.

Questions connexes