Est-ce un problème de créer un répertoire pour chaque téléchargement de fichiers, dans une application web sur linux / unix?

StackOverflow https://stackoverflow.com/questions/1503356

Question

Je suis en train de faire de téléchargement de fichier pour une application Web (en cours d'exécution sur unix / linux). Je me demande s'il y aurait un problème si je comptais créer un nouveau répertoire pour chaque téléchargement de fichiers? Telle est l'approche hors-the-box pour Ruby on Rails plug-in "paperclip". Je discutais ce que les compromis sont, ou si peut-être il est tout simplement pas un problème, si le déploiement sur un environnement Linux / unix.

Les options semblent être:

  1. Un dossier par fichier joint - par la façon dont paperclip semble fonctionner hors de la boîte
  2. Un dossier par utilisateur peut-être (à savoir si le service Web a plusieurs utilisateurs avec leur propre compte) - et il faudrait ajouter un peu unique au nom du fichier (peut-être le numéro de modèle)
  3. Mettez toutes les pièces jointes dans un dossier - mais cela va sans doute trop loin dans l'autre sens

Question - Dois-je être préoccupé par le nombre de répertoires en cours de création? Est-ce un problème pour un O / S si le service était populaire? Des conseils pour un site Web qui permettait à des utilisateurs avec leur propre compte distinct pour télécharger des fichiers, quelle structure pourrait être bon en ce qui concerne les stocker? (Je crois que je l'ai réduit le concept de stockage de fichiers dans une base MySQL.)

Merci

Était-ce utile?

La solution

En supposant lecteur formaté Ext3 sous Linux (le plus courant).

De ( http://en.wikipedia.org/wiki/Ext3 )

« Il y a une limite de 31998 sous-répertoires par un répertoire, provenant de la limite de 32000 liens par inode. [13] »

Donc, si vous frappez la limite de 32k téléchargements, ce qui est pas élevé, l'application échouera.

Autres conseils

Non en tant que tel, mais ayant gazillions des dossiers dans un répertoire (ou même pour les fichiers) n'est pas recommandé (il est un vrai succès à la vitesse).

Raison: chaînes de style c

Une bonne solution serait de stocker des choses hierchially quelque chose comme (sic?): / Chemin / vers / usernamefirstletter / nom d'utilisateur / année / mois / fichier

Si vous avez une partition séparée pour le répertoire dans lequel les nouveaux fichiers / répertoires sont créées, je dirais que ce n'est pas un problème. Il peut y avoir un problème si vous utilisez juste une autre partition puisque vous pouvez exécuter sur inodes et / ou de l'espace libre sur le disque qui peut être mauvais.

En utilisant une partition séparée serait (dans le cas d'une attaque DOS) n'arrêtez votre application de fonctionner correctement et le système ne sera pas mal en aucune façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top