Ist es ein Problem, ein Verzeichnis für jede Datei-Upload, in einer Web-Anwendung auf Linux / Unix zu schaffen?

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

Frage

Ich mache Datei-Upload für eine Web-Anwendung (läuft auf Unix / Linux). Ich frage mich, ob es würde ein Problem sein, wenn ich ein neues Verzeichnis für jede Datei-Upload erstellen geplant? Dies ist der Out-of-the-Box-Ansatz für die Ruby on Rails-Plugin "Büroklammer". Ich diskutieren, was die Abwägungen sind, oder ob es vielleicht nur kein Problem, wenn sie auf einem Linux / Unix-Umgebung bereitstellen.

Die Optionen scheinen zu sein:

  1. Ein Ordner pro Dateianhang - pro wie Büroklammer scheint aus dem Kasten
  2. arbeiten
  3. Ein Ordner pro Benutzer vielleicht (das heißt, wenn Web-Service mehrere Benutzer mit ihrem eigenen Konto hat) - und dann würde man braucht eine Einzigartigkeit auf die Dateinamen hinzufügen (vielleicht die Modell-ID)
  4. Legen Sie alle Anhänge in einem Ordner - aber das ist wahrscheinlich zu weit in die andere Richtung gehen

Frage - Soll ich besorgt über die Anzahl der Verzeichnisse erstellt werden? Ist das ein Problem für eine O / S, wenn der Service ist beliebt? Jede Beratung für eine Website, die wurde so dass Benutzer mit ihrem eigenen separaten Konto zum Hochladen von Dateien, welche Struktur könnte in Bezug gut sein, sie zu speichern? (Ich glaube, ich habe abgezinst das Konzept der Dateien in mysql speichern.)

Danke

War es hilfreich?

Lösung

Unter der Annahme, Ext3 formatierten Laufwerk unter Linux (am häufigsten).

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

„Es gibt eine Grenze von 31.998 Unterverzeichnissen pro Verzeichnis, von seiner Grenze von 32.000 Verbindungen pro Inode ergeben. [13]“

Wenn Sie also die Grenze von 32k Uploads getroffen werden, die nicht so hoch ist, wird die Anwendung fehlschlagen.

Andere Tipps

Nicht als solche, sondern zig Ordner in einem Verzeichnis (oder das gleiche für Dateien), das wird nicht empfohlen (es ist ein echter Hit auf Geschwindigkeit).

Grund: C-Strings

Eine gute Lösung wäre, hierchially speichern Dinge so etwas wie (sic?): / Path / to / usernamefirstletter / Benutzername / Jahr / Monat / Datei

Wenn Sie eine separate Partition für das Verzeichnis, in dem die neuen Dateien / Verzeichnisse erstellt bekommen, würde ich sagen, es ist kein Problem. Es kann ein Problem, wenn man nur eine andere Partition verwenden, da Sie aus Inodes und / oder freiem Speicherplatz laufen können, die schlecht sein können.

eine separate Partition verwenden würde (bei einem DoS-Angriff) nur Ihre Anwendung zu stoppen ordnungsgemäß funktioniert und das System wird nicht in irgendeiner Weise verletzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top