Azure Blob-Speicher vs. Dateidienst [geschlossen]

130

Bitte korrigieren Sie meine Fehler. Aus meiner bisherigen Lektüre zu diesem Thema geht hervor, dass sowohl Azure Blob Storage als auch File Service die Möglichkeit bieten, Dateien und Ordner zu speichern (ich verstehe, dass Blobs jedes binäre Objekt speichern können, aber jedes serialisierte Binärstrom ist nur eine Datei am Ende des Tages) in einer hierarchischen Struktur, die ein Dateisystem nachahmt.

Nur die API für den Zugriff darauf unterscheidet sich geringfügig darin, dass Sie mit dem Dateidienst die Quelle zusätzlich zur Verwendung der REST-API auch mit Win32 File I / O-ähnlichen Funktionen abfragen können.

Warum sollten Sie sich für eine andere entscheiden, wenn Ihre Anwendung einige Dateien speichern soll, die den Benutzern Ihrer Anwendung gehören?

Wasserkühler v2
quelle
6
Haben Sie diesen Blogbeitrag vom Azure Storage-Team gelesen: blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/… ? Bitte scrollen Sie nach unten zu dem Abschnitt, in dem erklärt wird, wann welcher Dienst verwendet werden soll.
Gaurav Mantri-AIS
3
Ja, ich habe diesen Artikel vor dem Posten gelesen. Ich bin in einem sehr frühen Stadium des Denkens und mein Verständnis ist noch nicht gut geformt. Ich bin immer noch verwirrt. Ich verstehe alles, was in allen Artikeln geschrieben ist, die ich gelesen habe, aber ich versuche herauszufinden, was am besten zu verwenden ist, wenn ich benutzereigene Dateien für eine von mir entworfene Anwendung speichern möchte.
Wasserkühler v2
Ich denke, es läuft darauf hinaus, was Sie mit diesen Benutzerdateien machen wollen? Werden sie irgendwie zurückgestreamt (über einen Webbrowser usw.) oder werden sie weiter verarbeitet? Wenn es früher ist, ist die Speicherung von Blobs sinnvoll. Wenn es letzteres ist, ist der Dateiservice sinnvoll.
Gaurav Mantri-AIS
1
Die Sache ist: Ich möchte den Benutzer seine eigenen Dateien hochladen und herunterladen lassen und einige davon auch mit anderen in seiner Gruppe von Kontakten teilen (damit sie nur herunterladen / lesen können). Ich könnte dafür Shared Access Signatures (SAS) mit Blob-Speicher verwenden, aber das würde meine "Freigabe" -Anforderung nicht erfüllen. Ich neigte zu einer Lösung, bei der meine App / mein Dienst die gesamte Authentifizierung durchführte und die tatsächliche Speicherressource nicht dem Benutzer zur Verfügung stellte. In diesem Zusammenhang machen für mich sowohl der Dateidienst als auch der Blob-Speicher dasselbe. Niemand bietet mir mehr Komfort als der andere.
Wasserkühler v2
@ WaterCoolerv2 Können Sie mir helfen, zwischen Azure-Dateispeicher und Blob-Speicher zu wählen, was Sie festgestellt haben
Heemanshu Bhalla

Antworten:

109

Einige Punkte für Ihre Frage:

  1. Sie können Azure Blob Storage nicht als native Freigabe auf einer virtuellen Maschine bereitstellen.
  2. Azure Blob-Speicher ist nicht über Container hinaus hierarchisch. Sie können Dateien mit / oder \ Zeichen hinzufügen, die von vielen Apps, die Blob-Speicher lesen, als Ordner interpretiert werden.
  3. Der Azure-Dateidienst bietet eine SMB-Protokollschnittstelle zum Azure Blob-Speicher, mit der das Problem mit (1) behoben werden kann.

Wenn Sie eine neue Anwendung entwickeln, nutzen Sie die native Azure-API direkt in Blob Storage.

Wenn Sie eine vorhandene Anwendung portieren, die Dateien freigeben muss, verwenden Sie den Azure-Dateidienst.

Beachten Sie, dass es einige SMB-Protokollfunktionen gibt, die der Azure-Dateidienst nicht unterstützt .

Simon W.
quelle
1
Vielen Dank, Simon. Ein paar Dinge zu Ihrer Antwort. Sehen Sie, am Ende des Tages möchte ich ein Endergebnis. Aus dieser Sicht habe ich diese Frage gestellt. Aus Sicht des Endergebnisses sind die Argumente 1 und 3 auf Ihrer Liste nicht relevant. Ich streite überhaupt nicht mit dir. :-) Deine Antwort ist sehr hilfreich. Ich versuche nur, Ihnen den Denkprozess zu erzählen, der mich dazu gebracht hat, diese Frage zu stellen. Und Argument Nr. 2 ist kein Problem, da es ein Problem darstellt und besagt, dass dies jedoch kein Problem ist. Angenommen, ich wollte benutzereigene Dateien speichern, dachte ich mir, warum sollte ich eine der anderen vorziehen?
Wasserkühler v2
Sehen Sie sich die beiden Punkte nach der nummerierten Liste an - das sollte Ihr Leitfaden sein.
Simon W
1
@SimonW - Die beiden Punkte nach Ihrem Leitfaden werden als "der Weg, dies zu tun" angegeben. Sie sind jedoch nicht absolut. In diesem Szenario sind sie eher Vorschläge. Es gibt Fälle, in denen Sie die Azure-API selbst mit einer neuen App nicht direkt verwenden möchten. Ebenso gibt es Fälle, in denen Sie vorhandene Apps möglicherweise überarbeiten möchten, um die Azure-API zu verwenden.
David Makogon
Gibt es einen IOPS-Leistungsunterschied zwischen ihnen?
LaPuyaLoca
@ SimonW - können Sie auf Punkt 3 oben näher eingehen? Ist dies eine Möglichkeit, einen Blob als SBM-Dateifreigabe bereitzustellen oder auf irgendeine Weise als "Festplatte" darauf zuzugreifen?
Neil Weicher
38

Ein paar andere Dinge zu beachten:

  • Preisgestaltung: Blob-Speicher ist viel billiger als Dateispeicher.
  • Portabilität: Wenn Sie sich für Blob-Speicher entscheiden, in Zukunft auf eine Diff-Plattform zu migrieren, müssen Sie möglicherweise Ihren App-Code ändern. Mit File Storage können Sie Ihre App jedoch auf jede andere Plattform migrieren, die SMB unterstützt (vorausgesetzt, Sie verwenden native Dateisystem-APIs in deine App)
Dharmendar Kumar 'DK'
quelle
4
Der Preis hier ist ein massiver Faktor (derzeit etwa ein 5-facher Unterschied), und erwähnenswert ist auch die 5-TB-Grenze für die Dateispeicherung.
TZHX
Alter Beitrag, aber ich lese ihn heute zum ersten Mal. Standardmäßig gibt es ein Limit von 5 TB für die Standardpreisstufe, das jedoch über einen Wechsel zu einem Limit von 100 TB geändert werden kann. Hinweis * Das Aktivieren großer Dateifreigaben für ein Konto ist ein irreversibler Vorgang für ein Azure Storage-Konto. docs.microsoft.com/azure/storage/files/…
Ruwd
10

Der Azure-Dateidienst ist eher auf die interne Dateiverwaltung ausgerichtet. Mit intern meine ich das Mounten eines Verzeichnisses auf einer VM in der Cloud oder lokal, damit es in Ihr Back-End geladen werden kann (SMB-basiertes Protokoll).

Für die Freigabe von Dateien für Endbenutzer (Web oder Apps) ist es wahrscheinlich sinnvoller, Blob-Speicher zu verwenden, da dies das Herunterladen über eine URL und das Sichern des Downloads über Shared Access-Signaturen vereinfacht.

Dieser Beitrag enthält weitere Details zum Vergleich (unten): https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/


quelle
Hallo Clemens Schotte, was mit Blob-Speicher gemeint ist, ermöglicht das Herunterladen über eine URL. Meinen Sie, dass der Dateispeicher keine URLs bereitstellt
Heemanshu Bhalla
1
Einige Dinge haben sich seit diesen Beiträgen geändert, aber der Dateidienst unterstützt das Herunterladen über eine URL und andere REST-APIs ( docs.microsoft.com/en-us/azure/storage/common/… ). Darüber hinaus scheint die Sicherheit auf der Ebene des Speicherkontos zu liegen, sodass sie zwischen Blobs und Dateidienst ( docs.microsoft.com/en-us/azure/storage/common/… ) sehr ähnlich sein sollte .
KJ