Stocker des images sous forme de fichiers ou dans la firebase database pour une application Web?

Ma question est assez générique et je sais qu’il n’y a peut-être pas de réponse à 100%. Je construis une solution Web ASP .NET qui inclura beaucoup d’images et, espérons-le, une quantité importante de trafic. Je veux vraiment atteindre la performance.

Dois-je enregistrer les images dans la firebase database ou sur le système de fichiers? Et quelle que soit la réponse, je suis plus intéressé par le choix d’une méthode spécifique.

Merci beaucoup, Stefan

DUPLICATE : Stockage des images dans DB – Oui ou non? , Comment stocker des images dans votre système de fichiers , Stocker un petit nombre d’images: blob ou fs? et probablement d’autres.


COMMENTAIRE: Merci pour beaucoup de bonnes réponses. Je vais opter pour une solution basée sur des fichiers même si j’aime l’idée d’avoir une solution 100% pilotée par une firebase database. Il semble qu’il y ait aujourd’hui de bonnes solutions pour faire ce que je veux avec les bases de données, etc., mais j’ai quelques raisons de ne pas le faire.

  • Je serai sur une solution hébergée, j’ai une énorme quantité de stockage (10 Go) mais seulement 300 Mo pour la firebase database. Cela coûtera cher en stockage supplémentaire dans la firebase database.

  • Je ne suis pas un expert DB et ne contrôle pas non plus les parameters de la firebase database. Une solution basée sur une firebase database peut nécessiter une configuration personnalisée.

Si nous décidons de lancer le site sur notre propre serveur, je pourrais envisager une solution basée sur la firebase database. merci Stefan

Stockez les images sur le système de fichiers et les emplacements des images dans la firebase database.

Pourquoi? Car…

  1. Vous pourrez servir les images en tant que fichiers statiques.
  2. Aucun access à la firebase database ou code d’application ne sera requirejs pour récupérer les images.
  3. Les images peuvent être diffusées depuis un autre serveur pour améliorer les performances.
  4. Cela réduira le goulot d’étranglement de la firebase database.
  5. La firebase database stocke finalement ses données sur le système de fichiers.
  6. Les images peuvent être facilement mises en cache lorsqu’elles sont stockées sur le système de fichiers.

Dans mes projets récemment développés, j’ai stocké des images (et toutes sortes de documents binarys) sous forme de colonnes d’images dans des tables de firebase database.

L’avantage d’avoir des fichiers stockés dans la firebase database est évidemment que vous ne vous retrouvez pas avec des fichiers non référencés sur le disque dur si un enregistrement est supprimé, car la synchronisation entre la firebase database (= métadonnées) et le disque dur (= stockage de fichiers) n’est pas intégrée et doit être programmé manuellement.

En utilisant la technologie d’aujourd’hui, je vous suggère de stocker des images dans des colonnes SQL Server 2008 FILESTREAM (du moins c’est ce que je vais faire avec mon prochain projet), car elles combinent l’avantage de stocker des données dans des bases de données ET moins selon la publicité;))

L’adage a toujours été “Fichiers dans le système de fichiers, métadonnées de fichiers dans la firebase database”

Mieux vaut stocker les fichiers en tant que fichiers. Différentes bases de données gèrent différemment les données Blob. Par conséquent, si vous devez migrer votre back-end, vous risquez de rencontrer des problèmes.

Lors de la diffusion des impats, un

J’ai trouvé cette réponse en cherchant votre question sur Google et en lisant les commentaires sur http://databases.aspfaq.com/database/should-i-store-images-in-the-database-or-the-filesystem.html

J’aime généralement avoir des fichiers binarys dans la firebase database car:

  • intégrité des données: pas de fichier non référencé, pas de chemin dans la firebase database sans aucun fichier associé
  • cohérence des données: prendre une firebase database dump et c’est tout. non “O j’ai oublié de cibler ce répertoire de données.”

Stocker des images dans la firebase database ajoute une charge supplémentaire à la firebase database pour servir des images uniques et rend difficile le déchargement dans un autre stockage (S3, Akami) si vous atteignez ce niveau. En les stockant dans la firebase database, il est beaucoup plus facile de déplacer votre application vers un autre serveur, car seule la firebase database doit être déplacée.

Stocker des images sur le disque facilite le déchargement dans un autre stockage, fait des images des éléments statiques, de sorte que vous n’avez pas à vous soucier des en-têtes HTTP de votre application Web pour rendre les images pouvant être mises en cache. L’inconvénient est que si vous déplacez votre application sur un autre serveur, vous devez vous rappeler de déplacer les images également. quelque chose qui est facilement oublié.

Pour les applications Web, vous obtiendrez de meilleures performances en utilisant le système de fichiers pour stocker vos images. Cela vous permettra d’implémenter facilement la mise en cache des images à plusieurs niveaux dans votre application. Le stockage des images dans une firebase database présente certains avantages, mais la plupart du temps, ces avantages sont associés à des applications client.

Juste pour append un peu plus aux réponses déjà bonnes. Vous pouvez toujours bénéficier des avantages de la mise en cache à la fois au niveau du Web et au niveau de la firebase database si vous suivez l’itinéraire en vous gardant des images dans la firebase database.

Je pense que pour la firebase database, vous pouvez réaliser cela en stockant les images par rapport aux données textuelles qui leur sont associées et si vous pouvez accéder aux images dans une requête particulière pour que la firebase database puisse mettre en cache la requête sentez-vous libre de me briser sur cette partie).

En ce qui concerne le Web, je suppose que puisque vous posez des questions sur asp.net, vous utiliseriez un gestionnaire http pour diffuser les images. Vous disposez alors de tous les avantages de la structure et vous pouvez garder votre nettoyeur logique de domaine en ayant uniquement à transmettre la clé à votre image au gestionnaire http.

Pourquoi ne pas choisir une firebase database NoSql individuelle pour stocker vos fichiers.

Il vous apporte l’intégrité des données, la cohérence des données mentionnée dans @chburd.

Tandis que vous continuez à restr petit.

  1. Voici un exemple pas à pas (approche générale, implémentation de Spring, Eclipse ) pour stocker des images dans un système de fichiers et conserver leurs métadonnées dans la firebase database – http://www.devmanuals.com/tutorials/java/spring/spring3/ mvc / Spring3MVCImageUpload.html
  2. Voici aussi un exemple – http://www.journaldev.com/2573/spring-mvc-file-upload-example-tutorial-single-and-multiple-files
  3. Aussi, vous pouvez étudier un code de base de ce projet – https://github.com/jdmr/fileUpload . Faites attention à ce contrôleur.