Chaque système que je connais qui stocke un grand nombre de gros fichiers les stocke en externe dans la base de données. Vous stockez toutes les données interrogeables pour le fichier (titre, artiste, durée, etc.) dans la base de données, ainsi qu'un chemin partiel vers le fichier. Lorsqu'il est temps de récupérer le fichier, vous extrayez le chemin du fichier, ajoutez une racine de fichier (ou URL) et renvoyez-le.
Ainsi, vous auriez une colonne "emplacement", avec un chemin partiel, comme "a/b/c/1000", que vous mapperez ensuite vers :"http://monserveur/fichiers/a/b/c/1000.mp3 "
Assurez-vous que vous disposez d'un moyen simple de faire pointer la base de données des médias vers un autre serveur/répertoire, au cas où vous en auriez besoin pour la récupération de données. De plus, vous pourriez avoir besoin d'une routine qui resynchronise la base de données avec le contenu de l'archive de fichiers.
De plus, si vous allez avoir des milliers de fichiers multimédias, ne les stockez pas tous dans un répertoire géant - c'est un goulot d'étranglement des performances sur certains systèmes de fichiers. Au lieu de cela, divisez-les en plusieurs sous-arbres équilibrés.