Ich würde noch ergänzen:
Man kann was die Verzeichnisse angeht vielleicht in die Richtung gehen, dass relative Formen genutzt werden. Linux ist jedenfalls sehr flexibel, externe FS zu mounten. Falls Dein System mal groß wird und sowieso aus dem Web angesprochen, bietet die Dateihaltung auf einem extra Fileserver mit Cache sicher etwas bessere Performance.
Es ist hilfreich, ein gutes Konzept zu den Dateinamen zu haben. Wie benennt der Server die für sich? Welche Zuordnngsmöglichkeiten (ID?) gibt es? Wie wird die Datei bei einem Download genannt? Wenn es mehr als ein schnöder Avatar ist, und der User die Dateien tatsächlich auch wieder runterladen kann, dann vielleicht mit dem Originalnamen oder jedenfalls nicht unbedingt mit dem Servernamen.
Mit oder auch ohne jegliche Art von Unterverzeichnis, eben auch wenn man die Verzeichnisstruktur darunter wechselt, sollte der Bildname eindeutig sein.
Ggf. musst Du Werkzeuge haben und eine klare Veranwortlichkeit um verlorene/gefundene Dateien zu identifizieren (Stichwort Transaktion von Castorp).
Z.B. Nextcloud scant das Filesystem und die Dateien werden dann in die DB aufgenommen / dem User angezeigt oder auch nicht mehr angezeigt, sind halt weg. Naheliegend, ist ja ein Filehost. Wie soll es bei Dir sein?