Wrzucanie plików na serwer- backend czy frontend?

0

Witam,

Mam takie pytano, otóż jeżeli tworzymy rest api dla aplikacji webowej i mobilnej a pliki dodawanie przez userów trafiają na serwer inny niż baza danych to kto powinien zająć się uploadem plików? fornted czy backend? schemat wyglada tak:

User wrzuca swój plik-> plik wrzucony na dropbox -> do bazy danych trafia nazwa pliku oraz url do niego

Czy w laravel powinienem stworzyc endpoint do wrzucania plików i pobierania? czy powinienem to zrobić na froncie?

Dodam że będą to małe pliki typu: zdjęcia i małe pdfy czy csv

Dzięki :)

5

Frontend może się rozłączyć w dowolnym momencie. Ponadto api pozwalające na poinformowanie, że gdzieś został wrzucony jakiś plik, kiedy nie masz gwarancji, że ten plik faktycznie tam jest, jest kulawe i otwiera furtkę do nadużyć, np. DOS. Frontend jest od UI, a nie od spinania razem powiązanych ze sobą operacji.

1

Nie wiem jak to jest z dropboxem, ale widziałem kiedyś fajny schemat dla uploadu plików bezpośrednio na S3 z frontu. O ile dobrze pamiętam działało to w ten sposób: w swoim api masz endpoint który zapisuje metadane o pliku i zwraca tymczasowego urla do uploadu pliku bezpośrednio na S3; następnie z S3 dostajesz id/link/cokolwiek o wrzuconym pliku i robisz patcha na wcześniejszej encji która trzymała metadane o tym pliku.

BTW. Wydaje mi się, że post jest w złej kategorii. Nie ma nic wspólnego z PHP mimo użycia słowa laravel.

1 użytkowników online, w tym zalogowanych: 0, gości: 1