myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » Bilder außerhalb des ASP.NET Projektes verwalten
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Bilder außerhalb des ASP.NET Projektes verwalten

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
JimStark
myCSharp.de-Mitglied

Dabei seit: 10.03.2020
Beiträge: 37


JimStark ist offline

Bilder außerhalb des ASP.NET Projektes verwalten

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

angenommen ich habe ein ASP.NET Projekt mit dem ich Mitarbeiter verwalten kann und auch Bilder von Mitarbeitern hochladen kann. Also ein Mitarbeiter-Objekt hat dann ein zugehöriges Bild.
Die Frage ist wie verwaltet man das am effizientesten wenn die Bilder recht groß sind und wenn es recht viele Mitarbeiter Objekte geben kann?
SQL BLOB ist ja wahrscheinlich nicht gerade die schönste Lösung. Wie würdet ihr vorgehen?
In der ASP.NET Anwendung das Bild auf dem Dateisystem abspeichern und selbst verwalten?

Was noch eine Idee von mir wäre, man erstellt einen externen Dienst mit REST API, an den leite ich die Bilder weiter und der gibt mir dann bei der Abfrage eines Bildes die JSON Antwort mit seiner URL des Bildes und des Thumbnails. Das könnte dann in einem seperaten Docker Container und damit zur Not einfach auf einem zweiten Server laufen. Gibt es da schon was fertiges in der Art?

Danke im Voraus!

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JimStark am 20.05.2020 09:05.

Neuer Beitrag 20.05.2020 09:04 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.825
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Üblich ist das Speichern von Bildern auf einen Blob Storage; also einfach einen Dateispeicher.
Bei Webseiten siehst Du auch, dass die Urls von Bildern meistens auf sowas wie "static" oder "cdn" zeigen; da ist genau so ein Storage dahinter (übrigens auch das Forum hier).
zB  https://cdn.mycsharp.de/resources/images...ader_logo_3.png

Ist die günstigste und die performanteste Art Bilder für Webseiten abzulegen.
In den Folder der Anwendung darf es nicht landen. Eine Webanwendung sollte aus Sicherheitsgründen immer in einem read-only Folder betrieben werden und keinerlei Schreib-Access auf Dateiebene haben.

Bilder in Datenbanken ist das so ziemlich teuerste und unperformanteste, was man machen kann.
Und da dies auch extrem schlecht skaliert sind Dateien in Datenbanken bei fast allen Cloud-Produkten (AWS, Azure, GCP...) auch nicht supported bzw. deaktiviert.
Neuer Beitrag 20.05.2020 09:06 Beiträge des Benutzers | zu Buddylist hinzufügen
glandorf glandorf ist männlich
myCSharp.de-Mitglied

Dabei seit: 07.10.2016
Beiträge: 46
Entwicklungsumgebung: Visual Studio
Herkunft: Chemnitz


glandorf ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

falls ein SQL-Server mit in Verwendung ist, kannst du dir auch die FILESTREAM-Option von diesem mal anschauen.

glandorf
Neuer Beitrag 20.05.2020 09:21 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JimStark
myCSharp.de-Mitglied

Dabei seit: 10.03.2020
Beiträge: 37

Themenstarter Thema begonnen von JimStark

JimStark ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Üblich ist das Speichern von Bildern auf einen Blob Storage; also einfach einen Dateispeicher.

Danke! Ich glaube das ist genau das was ich gesucht habe auch wenn es gerade noch etwas overpowered aussieht.

Falls jemand ähnliches vorhat, habe mir jetzt mal das rausgesucht:
 https://github.com/minio/minio

Dafür gibt es auch eine .NET SDK:
 https://github.com/minio/minio-dotnet
Neuer Beitrag 20.05.2020 12:35 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.825
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Docker Container sind eigentlich nicht als Datengrab gedacht. Das liegt am Volume Mapping.
Daher sind Datenbanken auf Docker / Kubernetes auch nicht unbedingt empfohlen ( Dont use Docker for production databases).
Das gilt prinzipiell für alle Art von Datenspeicherung in Containern.

Wenn Du Bilder für sowas auf AWS speichern willst, dann verwende besser nen S3 Bucket.
Wenn Du auf Azure bist, dann gibt es dafür den Blob Storage ( mit einem Container).

In beiden Fällen setzt man für das Caching meistens noch ein CDN davor.
Bei AWS heisst das CloudFront CDN - bei Azure je nachdem zB Frontdoor oder direkt den Azure CDN.

Aber so richtig verstanden, was Du für eine Umgebung hast, hab ich nicht.
Neuer Beitrag 20.05.2020 12:47 Beiträge des Benutzers | zu Buddylist hinzufügen
JimStark
myCSharp.de-Mitglied

Dabei seit: 10.03.2020
Beiträge: 37

Themenstarter Thema begonnen von JimStark

JimStark ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für deine schnelle Antwort und die Info.
Also das Projekt wird eine Firmeninterne Software, die soll am besten mal in nem Docker Container laufen, auf den nur innerhalb des Firmennetzes zugegriffen werden soll. Die Bilder will ich da außerhalb speichern/verwalten, z.B. mit diesem Minio. Entweder in einem separaten Docker Container oder halt auf einem externen Server (aber auch im Intranet), je nach Beanspruchung.
Ich denke für dieses Vorhaben würde auch Docker reichen, sollte es nicht, könnte ich ja einfach den Blob Storage ohne Docker direkt auf einem extra Server einrichten oder?

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JimStark am 20.05.2020 13:01.

Neuer Beitrag 20.05.2020 13:01 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.825
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Der Sinn eines Storages ist ja nicht nur das Ablegen von Bildern sondern auch das Ausliefern der Fotos.
In einem Doku Container brauchst Du eine Anwendung, um auf Bilder "verlinken" zu können - also anzeigen zu können.

Ein Storage ermöglicht ein Direktzugriff ohne Compute.
Daher ist ein Storage in 99,9% der Fälle der empfohlene Weg.
Neuer Beitrag 20.05.2020 14:05 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 31.05.2020 02:26