Przechowywanie obrazów dla aplikacji webowej

Przechowywanie obrazów dla aplikacji webowej
bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1683
0

Mam aplikację webową, która generuje pliki JPG i zapisuje je w wwwroot/src/img.

Załóżmy, że obrazek zostanie zindeksowany przez Google, po ponownym wrzuceniu aplikacji na serwer, w.w. folder będzie pusty i adresy zindeksowanych obrazków będą zwracać 404.

I tak się zastanawiam jakie mogą być alternatywne praktyczne sposoby zapisu obrazów dla aplikacji webowej, żeby ich nie tracić za każdym razem przy aktualizacji aplikacji. Domyślam się, że z racji rozmiarów DB odpada. Może FTP? Chmura?

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

A nie wystarczy folder, który nie jest wdrażany/aktualizowany razem z aplikacją? ;) Po prostu możesz tego jednego nie kasować - oczywiście to zależy w jaki sposób masz zrobione aktualizacje.

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1683
0

@Ktos: Przez Publish w VS2019.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
2

To tam w pliku .pubxml możesz sterować co ma być wdrażane i czy ma być usuwane - spójrz na <DeleteExistingFiles>False</DeleteExistingFiles> oraz w zasadzie na całe pomijanie folderów - https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/visual-studio-publish-profiles?view=aspnetcore-5.0#exclude-files.

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1683
0

@Ktos: Po Twoim poprzednim poście zacząłem googlać pod tym kątem. Wydaje mi się, że Twoje rozwiązanie załatwi sprawę. Wcześniej nie przeszło mi przez myśl, że można pomijać foldery przy publikacji projektu. Dzięki!

Aventus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: UK
  • Postów: 2235
0

Z tym DeleteExistingFiles radzę być ostrożny. Nie raz byłem świadkiem sytuacji gdzie jakiś stary plik DLL powodował problemy. Wszystko ładnie działało na środowisku developerskim a na innym (czasem na produkcji) rzeczy przestawały tajemniczo działać.

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1683
0

@Aventus: To będzie jedynie kwestia oznaczenia folderu z obrazkami.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

@bakunet: Ja z kolei jakoś nie pomyślałem, że koniecznie muszę szukać innej metody przechowywania danych niż pliki, bo jak dotąd robiłem aktualizacje to nigdy nie usuwałem tego typu folderów ;)

Ale tak swoją drogą to całkiem polecam Azure Storage czy inne Amazon S3 jeżeli danych masz olbrzymie ilości, bo koszty przechowywania/transferu potrafią być dość niskie - tylko trzeba uważnie czytać i porównywać opcje i pamiętać o koszcie transferu danych. I o odpowiednich uprawnieniach, jeżeli nie przechowujesz danych które mogą być dostępne publicznie.

A Scaleway oferuje system kompatybilny z S3 za darmo do 70 GB.

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5227
1

I tak się zastanawiam jakie mogą być alternatywne praktyczne sposoby zapisu obrazów dla aplikacji webowej, żeby ich nie tracić za każdym razem przy aktualizacji aplikacji. Domyślam się, że z racji rozmiarów DB odpada. Może FTP? Chmura?

zapis poza aplikacja i samemu obsłużenie dostępu do obrazków

Kopiuj
public async IActionResult Download(Guid id)
{
	return File(bytes...);
}
VA
  • Rejestracja: dni
  • Ostatnio: dni
0

Możesz w czasie wdrożenia nie ruszać w ogóle folderu z obrazkami. Możesz trzymać obrazki poza katalogiem w którym jest aplikacja. Możesz trzymać je na zewnętrznym CDN a nawet w bazie.

Możliwości jest sporo

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.