Przechowywanie plików w aplikacji webowej

Odpowiedz Nowy wątek
2017-07-17 21:35
0

Witam, piszę aplikację webową w ASP MVC5. Jedno z wymagań to możliwość dodania z panelu administracyjnego artykułu z załączonym obrazkiem. Tutaj pojawia się moje pytanie- jak najlepiej to osiągnąć? Czy zapisać plik do bazy danych, a jeśli tak to jak go następnie wczytać z poziomu view? Czy może dynamicznie dodawać pliki jako resources i zapisywać bezpośrednio na dysku z pominięciem bazy danych? Czy są jakieś przyjęte standardy co do przechowywania i wczytywania plików (nie koniecznie zdjęć)?


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2017-07-17 21:51
2

W bazie trzymasz path do pliku na dysku. Jak go wrzucisz twój wybór. Dla przykładu w pracy w naszym CMS mamy tak, że pliki są wrzucane za pomocą AJAXA na serwer i zwracany jest id z tabeli Files. Przy kliknięciu "zapisz" Id przekazane jako tablica do kontroler(z innymi danymi). Artykuł i plik są wiązane w tablicy pośredniej, gdzie jest tylko id artykułu i id pliku.

Pozostało 580 znaków

2017-07-17 22:32
0

Dzięki za odpowiedź. Zastanawiam się jak to będzie wyglądać w przypadku wystawienia strony na hostingu, np. GoDaddy czy WinHost. Nie orientujesz się czy nie ma w takim przypadku problemów z uprawieniami do zapisywania plików?


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2017-07-18 17:18
2

Mogą być problemy, ale często wystarczy po prostu ustawić kontu na którym chodzi pula aplikacji

Alternatywnie można też trzymać pliki w bazie. Szczegółowa implementacja zależy od bazy danych, no i ma swoje wady (czas backupowania, rozmiar bazy) i zalety (łatwość backupowania, transakcyjność, uprawnienia).

A ja to bym w ogóle wystawił jakiś oddzielny serwis do plików i na S3 wrzucił.

Pozostało 580 znaków

2017-07-18 17:40
0

Ciekawy pomysł z tym S3, muszę poczytać. Jakby ktoś jeszcze miał jakieś pomysły/doświadczenia to proszę pisać. Tak z ciekawości- jak z tym problememem radzi sobie chociażby 4P @Adam Boduch ?


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
4p ma swoje serwery dedykowane. - somekind 2017-07-18 17:44
@somekind No tak, o tym nie pomyślałem ;) - Aventus 2017-07-18 17:45

Pozostało 580 znaków

2017-07-18 17:52
Aventus napisał(a):

Ciekawy pomysł z tym S3, muszę poczytać. Jakby ktoś jeszcze miał jakieś pomysły/doświadczenia to proszę pisać. Tak z ciekawości- jak z tym problememem radzi sobie chociażby 4P @Adam Boduch ?

Prosto: plik na dysku + nazwa pliku zapisywana w bazie danych. Jednak zapis/odczyt pliku następuje poprzez warstwę abstrakcji - bibliotekę, która w prosty sposób umożliwia podmianę lokalnego systemu plików na - np. AWS S3. Czyli dostępne są różne adaptery. My, póki co korzystamy z adaptera filesystem.

Pozostało 580 znaków

2017-07-18 18:10
0

Dzięki za odpowiedź. Skontaktowałem się z jednym z hostingów i wspierają bezpośredni zapis plików także chyba pójdę tą drogą zamiast za bardzo komplikować. Dodam również tak jak piszesz warstwę abstrakcji gdybym miał w przyszłości zmienić źródło plików.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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