Ich habe eine Webanwendung, die viele von Benutzern generierte Dateien speichert. Derzeit sind diese alle auf dem Server-Dateisystem gespeichert, was einige Nachteile für mich hat.Dateispeicher für Webanwendungen: Dateisystem vs DB vs NoSQL-Engines
- Wenn wir „Ordner“ verschieben (wie durch unsere Anwendung definiert) müssen wir auch die Dateien auf der Festplatte bewegen (obwohl dies aufgrund seltsamer Design Entscheidungen seitens des ursprünglichen Entwicklers als ein Erfordernis der Speicherung ist Dinge auf dem Dateisystem).
- Es ist schwierig, Tests für Dateisystemaktionen zu schreiben; Ich habe eine Schein-Dateisystem-Klasse, die Aktionen wie Verschieben, Löschen usw. protokolliert, ohne sie auszuführen, was mehr oder weniger den Job erledigt, aber ich habe kein hundertprozentiges Vertrauen in die Tests.
- Ich werde einige andere Jobs hinzufügen, die auf die Dateien von einem anderen Dienst zugreifen müssen, um zusätzliche Aufgaben auszuführen (z. B. Indizierung in Solr, Erstellung von Thumbnails, Filmformatkonvertierung), also muss ich die Dateien aus der Ferne holen. Dies über Netzwerkfreigaben zu tun scheint zwielichtig ...
- Der Umgang mit Berechtigungen auf dem Dateisystem als manchmal uns Probleme in der Vergangenheit gegeben, obwohl jetzt, dass wir in eine reine Linux-Umgebung bewegt haben, sollte dies weniger ein Problem sein.
Also, meine Hauptfragen sind
- Was sind die Nachteile der Speicherung von Dateien als BLOBs in MySQL sind?
- Gibt es die gleichen Probleme mit NoSQL-Systemen wie Cassandra?
- Hat jemand andere Vorschläge, die angemessen sein könnten, z.B. MogileFS usw.?
Danke, sieht aus wie eine sehr nützliche Reihe von Links. Das Speichern von Bildern/Blobs jeglicher Art ist das, wonach ich suche (wir speichern alle möglichen Sachen). –
Danke, Ihre vorgeschlagenen Links sind großartig. Klar muss ich härter suchen, bevor ich Fragen stelle :) Fazit, die DB zu vermeiden sieht aus wie der Weg zu gehen. Ich muss nur die Anwendung vom Dateisystem etwas entkoppeln, so dass es weniger schmerzhaft ist ... –
Froh, dass Sie sie nützlich fanden. Und ich teile diese Schlussfolgerung. –