Ich habe die Backend-Api meiner App fertiggestellt. Sie verwendet expressjs und mongodb/mongoose. Nach all den Tests, die ich durchgeführt habe, macht es einen großartigen Job mit Post- und Get-Anfragen an meine MongoDB.
Ich wollte meine Backend-API diese Woche bereitstellen, damit ich mit der Arbeit am Frontend meiner App beginnen kann. Aber mir ist klar geworden, dass ich eine Möglichkeit brauche, um Bilder, die der Benutzer hochlädt, und die Artikel in der Datenbank zu speichern.
Viele Leute sagen, dass ich Bilder nicht über Gridsf in meiner MongoDB-Datenbank speichern sollte. Und dass ich stattdessen Amazon S3 verwenden sollte.
Ich habe jedoch einige Bedenken bei diesem Ansatz.
Für meine App befinden sich das Front-End und meine Back-End-Api in separaten Repos. Und ich beabsichtige, dass das Frontend eine Api-Anfrage an das Backend stellt, indem ich Axios verwende, um Datenbankdaten in meinem HTML/CSS anzuzeigen. Aus diesem Grund habe ich das Gefühl, dass die Verwendung von S3 zum Speichern von Bildern die Dinge verkompliziert. Wenn ich z.B. eine Liste von Benutzern habe, wie kann ich sicher sein, welches Avatarbild aus S3 zu welchem Benutzer gehört?
Ich stelle mir ein Albtraumszenario vor, in dem ich Bilder aus dem S3-Bucket erhalten habe, aber sie haben alle einen zufälligen Hash als Dateinamen, und ich weiß nicht, welche jpg-Datei und welche MongoDB-Dokumentendatei zu demselben Benutzer oder Element gehört. Ich habe den Eindruck, dass die Speicherung von Bildern in der Datenbank dieses Dilemma löst.
Sollte ich Gridsf verwenden oder ist das ein schlechterer Ansatz als das Festhalten an multer-s3 und s3 im Allgemeinen?
Gibt es eine bessere Alternative als beides?