2016-08-03 96 views
0

Wir hosten derzeit MVC Webapp in IIS-Server. Und wir haben die Option für Endbenutzer, Bild-/PDF-Dateien hochzuladen. Zum Speichern von ihnen können wir Code ein Ding wie diese verwenden ..Speichern von Dateien in Azure gehostete Website

if (file.ContentLength > 0) 
     { 
      var fileName = Path.GetFileName(file.FileName); 
      var path = Path.Combine(Server.MapPath("~/App_Data/Images"), fileName); 
      file.SaveAs(path); 
     } 

Jetzt haben wir Pläne von diesem auf Azure Hosting. Funktioniert der obige Dateispeichermechanismus, wenn wir in Azure hosten? Oder müssen wir Änderungen in Datei speichern Mechanismus (wie Azure-Dateisystem ist anders).

Antwort

1

Wenn Sie mit einer azurblauen VM arbeiten und die Site im IIS dieses Servers hosten, ist die Vorgehensweise dieselbe. Sie haben eine persistente Festplatte und die Dateien können dort gespeichert werden. aber es ist keine machbare Lösung, wenn Sie mehr Dateien hochgeladen haben und so weiter.

Wenn Sie mit azure App-Service-Webanwendungen oder Webrollen arbeiten, ist diese Option nicht möglich, da der Speicherplatz in dieser Instanz begrenzt ist und die Instanz bei Webroles recycelt oder neu gestartet und im Fall von Web gelöscht wird Apps, die Daten werden weg sein.

Azure-Speicher bietet Blobspeicher, der beim Speichern von Binärdateien wie Dokumenten, Bildern, Videos usw. nützlich ist. Azure-Speicher ist billig und hochverfügbar und zuverlässig.

In Ihrer asp.net MVC App müssen Sie das azure Storage SDK als Nuget-Referenz hinzufügen und dann die oben genannten Upload/Download-Methoden verwenden.

Sie können den azure Blobspeicher verwenden, wenn Sie Ihre Website auch in einer VM hosten.

https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-how-to-use-blobs/

http://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2016/01/26/creating-a-photo-album-for-asp-net-mvc-5-users-using-azure-blob-storage.aspx

+0

Ihre Kommentare zu Web Apps sind falsch - der Speicher ist dauerhaft, es sei denn, die Webanwendung wird tatsächlich gelöscht. –

+0

@David aktualisierte Antwort basierend auf Ihrem Kommentar. – Aravind

2

Wie Sie Azure bereitstellen liegt an Ihnen, und es gibt viele Möglichkeiten, wie Sie es tun können (ich werde keine besondere Art und Weise nahe legen). Sachlich aber:

Virtual Machines

  • Virtual Machine OS Platten sind dauerhaft, in einer Seiten-Blob gespeichert. Dieser Speicher wird jedoch nicht zwischen VMs geteilt.
  • Virtual Machine-Scratch-Datenträger (ob regulär oder SSD) sind nicht dauerhaft. Angenommen, Daten gehen verloren.
  • Sie können langlebige Festplatten an eine virtuelle Maschine anhängen (jeweils bis zu 1 TB, bis zu zwei Festplatten pro Kern). Diese sind wie die Betriebssystem-Festplatte blob-backed. Aber auch hier nicht zwischen Virtual Machine Instanzen gemeinsam genutzt

Cloud Services

  • Web und Worker-Rollen-Instanzen verwenden kurzlebiges O Platten.
  • Sie können Festplatten an Web/Worker-Rollen (Azure-Laufwerke) anfügen. Diese sind langlebig und Blob-Backed. Wird nicht zwischen Instanzen geteilt.

Web Apps

  • Web Apps bieten dauerhafte Speicherung (Menge auf App-Tier-basiert). Dieser Speicher wird für alle Instanzen dieser Webanwendung freigegeben. Dieser Speicher wird jedoch gelöscht, wenn Sie Ihre Webanwendung löschen.

Azure Storage

  • Sie können wählen, von/zu diskretem Blobs (jeweils bis zu 200 GB) lesen/schreiben. Diese sind unabhängig von einer VM/Cloud-Service/Web-App. Diese werden über die REST-API aufgerufen (und mit SDKs in zahlreichen Sprachen umschlossen). Blobs werden nicht lokalen Dateiverzeichnissen zugeordnet (mit Ausnahme von Seitenblobs, die tun mounten als eine VHD, wie oben in Virtual Machines erwähnt). Azure Storage bietet bis zu 500 TB pro Konto und möglicherweise mehrere Speicherkonten.
  • Azure-Dateispeicher ist eine SMB-Freigabe, die von Azure Storage (Blobs) unterstützt wird. Dies ist ein dauerhafter Speicher. Sie können dies auf Ihren virtuellen Maschinen mounten (anders als Azure Disks können Sie dies gleichzeitig auf mehreren VMs mounten). Azure File Storage bietet bis zu 5 TB pro Dateifreigabe.
  • Für leistungsorientierte Workloads können Sie Premium Storage (SSD) auswählen. Premium Storage-Festplatten sind nur mit bestimmten Virtual Machine-Typen kompatibel und in den Kapazitäten 128 GB, 512 GB und 1 TB verfügbar.