Ukończyłem backend api mojej aplikacji. Używa ona expressjs i mongodb/mongoose. Ze wszystkich testów, które przeprowadziłem, wykonuje świetną robotę z robieniem żądań post i get do mojego MongoDB.
Miałem na myśli wdrożenie mojego backend API w tym tygodniu, więc mogę zacząć pracować nad front-endem mojej aplikacji. Ale zdałem sobie sprawę, że potrzebuję sposobu na przechowywanie obrazów, które użytkownik przesyła i dla elementów w bazie danych.
Wiele osób mówi, że nie powinienem przechowywać obrazów w mojej bazie danych MongoDB za pośrednictwem Gridsf. I że powinienem użyć Amazon S3 zamiast tego.
Mam jednak pewne obawy związane z tym podejściem.
Dla mojej aplikacji, front-end i mój backend api są w oddzielnych repozytoriach. I zamierzam, aby ten pierwszy wykonał żądanie api do tego drugiego za pomocą Axios, aby wyświetlić dane z bazy danych w moim html / CSS. Z tego powodu czuję, że używanie S3 do przechowywania obrazów komplikuje rzeczy. Na przykład, gdybym miał listę użytkowników, jak mogę być pewien, który obraz awatara z S3 jest dla którego użytkownika?
Wyobrażam sobie koszmarny scenariusz, w którym mam obrazy otrzymane z wiadra S3, ale każdy z nich ma jakiś losowy hash jako nazwę pliku, a ja nie wiem, który plik jpg i który plik dokumentu MongoDB należy do tego samego użytkownika lub elementu. Wydaje mi się, że przechowywanie obrazów w bazie danych rozwiązuje ten dylemat.
Czy powinienem iść dalej i po prostu użyć Gridsf, czy jest to gorsze podejście niż po prostu trzymanie się multer-s3 i s3 w ogóle?
Czy istnieje lepsza alternatywa niż którakolwiek z nich?
.