Nombre de dossiers ou fichiers dans un dossier
muqaddar
Administrateur
Salut,
Sur un serveur UNIX (Linux), quel est le nombre maximal de dossiers et/ou fichiers qu'on peut mettre dans un dossier ? J'avais cru lire que c'était 32000, mais j'ai comme un doute, je trouve cette limite basse.
Tant que j'y suis, je pose la même question pour OS X.
Sur un serveur UNIX (Linux), quel est le nombre maximal de dossiers et/ou fichiers qu'on peut mettre dans un dossier ? J'avais cru lire que c'était 32000, mais j'ai comme un doute, je trouve cette limite basse.
Tant que j'y suis, je pose la même question pour OS X.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Selon les FileSystems, certains pourront avoir des noms plus ou moins longs pour les fichiers et dossiers, et plus ou moins de fichiers dans leur répertoires, ou un nombre maximum de niveaux dans leur hiérarchie, etc
Par exemple la doc Apple sur ces limites en question concernant HFS+
D'après ce que je viens de lire, c'est grosso-modo la même chose sur les Linux, et ça dépend su système (32 ou 64 bits).
Il y a bien une limite de 32000 nodes pour le filesystem Ext3:
http://blog.zachwaugh.com/post/309921185/ext3-filesystem-sub-directory-limit
Je vais trouver une parade en modifiant un plugin (celui qui crée les dossiers justement) pour créer des sous-dossiers.
Par exemple nous pour les plus de 100 000 photos de plats qu'on a, on ne les stocke pas tous dans le même dossier sur notre S3 (heureusement), mais on les découpe par sous-dossier de 100 fichiers.
25678/image.jpg => 2/5/6/7/8/image.jpg
Ce n'est peut-être pas très propre, mais c'est diablement efficace.
PS: tu dis avoir 100000 plats ? Pas plus ? Je croyais que vous aviez 100000 membres. ça voudrait donc dire qu'un membre ne poste qu'un plat en moyenne ?
Alors du coup c'est trop découpé je pense.
Pourquoi pas 256/78/image.jpg ?
Oui, moi par exemple !
On doit en être à pas loin de 150k plats à peu près aujourd'hui, j'ai pas les chiffres en tête
ça veut quand-même dire que y'a un paquet d'utilisateurs qui téléchargent et s'inscrivent "juste pour voir".
Après, d'après Flurry on a un taux de rétention plus élevé que les autres apps de ce genre (réseaux sociaux, etc) et une des rares apps à avoir 5 étoile sur l'AppStore Alors évidemment y'a des drogués à FR qui postent tout le temps et à côté de ça certains qui ne postent presque jamais, on a un peu tous les profils c'est normal ça s'équilibre
Chaque vin ayant un UUID, je découpe celui-ci en autant de dossiers que nécessaire.
A -> B -> F -> 3 ...
Je me disais, je suis assuré d'être tranquille à vie sur le nombre de noeuds par dossier.
C'était sans compter sur mon hébergeur qui vient de me dire qu'il allait désactiver le backup de mon compte parce que j'avais atteint "200K directories"... gloups !
Du coup, ça sent le serveur dédié... et les coûts qui vont avec.
Je suppose que vous êtes déjà en dédié sur FR.
Les répertoires sont découpés par séries de 100.
En plus je sais que ça s'interface en 2 lignes de code avec un gem Rails.
ça ça m'étonne quand-même parce qu'à partir du moment ou tu passes chez S3, il me semble que S3 fait sa cuisine interne pour gérer ce genre de chose.
http://stackoverflow.com/questions/3980968/s3-limit-to-objects-in-a-bucket
La technique du 1/2/3/4/data est plus que recommandé pour éviter les problèmes de lenteurs d'accès et les problèmes de maintenance.
1/2/3/4/5/thumb/image.jpg
1/2/3/4/5/full/image.jpg
Bon, j'ai trouvé mon devoir de vacances dans les Alpes: S3 !
D'un point de vue administrateur système je ne ferais surtout pas ça.
Il est bien plus logique d'avoir une branche original puis une branche thumb avec les même sous arbres. Ce sont de famille d'objet différent. Si tu souhaite migrer tes données supprimer tout tes thumb pour les recréer avec ton nouveau script de miniature, c'est bien plus simple de supprimer la racine de l'arbre que ses feuilles.
De la même manière, ton fichier final doit se nommer du nom complet de la ressource, il ne doit en aucun cas avoir un nom identique d'un fichier à l'autre. Cela te sera utile si un jour tu cherche à récupérer un export plat de toutes tes ressources. Cela servira aussi en cas de crash de disque, si tu passe en récup et que tu ne récupère que les fichiers sans la hiérarchie de disque, tu sera également content. Et dernier point, avec le nom complet au final, tu t'autorise à avoir une profondeur de dossier éventuellement plus faible que le nom du fichier en lui même, ce qui sera utile si un jour tu remplace tes UID par des UUID pour plus de sécurité.
Oui, c'est vrai pour ce cas.
Mais si on veut supprimer un seul record et les 3 fichiers dépendants, il ne faut parcourir qu'une seule arbo et non 3.
(mais bon, sinon, c'est mon gem qui gère ça en interne, je ne vais pas aller le réécrire)
Mais qui t'a dit que mes noms de fichiers n'étaient pas uniques ? Bien sûr qu'ils le sont !
En fait actuellement, l'UUID du record concerné en base sert de path, (A/E/1/F/....), et le nom du fichier image est également un autre UUID (AE1F-...-FF.jpg).
Bah toi ^^
C'est à ce commentaire que je répondais ^^
Tu me montreras où... /wink.png' class='bbc_emoticon' alt=';)' />
Tu blague là ? Tu vois pas la citation juste en dessous du "Bah toi ^^" ?!