Entwerfen einer Strategie für die Organisation von Speicher
Beim Entwerfen einer App, die Daten speichern muss, müssen Sie unbedingt überlegen, wie die App Daten in Speicherkonten, Containern und Blobs organisieren soll.
Speicherkonten
Ein einzelnes Speicherkonto ist flexibel genug, um Ihre Blobs zu organisieren. Sie sollten jedoch bei Bedarf zusätzliche Speicherkonten verwenden, um Kosten logisch zu trennen und den Zugriff auf Daten zu steuern.
Container und Blobs
Die Art der App und die Daten, die sie speichert, sollten über Ihre Strategie für das Benennen und Organisieren von Containern und Blobs entscheiden.
Apps, die Blobs als Teil eines Speicherschemas verwenden, das eine Datenbank beinhaltet, müssen sich häufig nicht stark auf Organisation, Benennung oder Metadaten verlassen, um Informationen zu ihren Daten anzuzeigen. Solche Apps verwenden im Allgemeinen Bezeichner wie z.B. GUIDs als Blobnamen und verweisen in Datenbank-Datensätzen auf diese Bezeichner. Die App verwendet die Datenbank, um zu bestimmen, wo Blobs gespeichert werden und welche Art von Daten sie enthalten.
Andere Apps verwenden Azure Blob Storage eher wie ein persönliches Dateisystem. Container- und Blobnamen geben Bedeutung und Struktur an. Blobnamen in diesen Arten von Apps sehen häufig wie herkömmliche Dateinamen aus. Sie können Dateinamenerweiterungen wie .jpg enthalten, um anzugeben, welche Art von Daten sie enthalten. Solche Apps verwenden virtuelle Verzeichnisse, um Blobs zu organisieren. Sie verwenden häufig Metadatentags, um Informationen zu Blobs und Containern zu speichern.
Bei der Entscheidung, wie Blobs und Container organisiert und gespeichert werden sollen, sind ein paar wichtige Punkte zu berücksichtigen.
Einschränkungen bei der Benennung
Für Container -und Blobnamen müssen bestimmten Regeln eingehalten werden, die beispielsweise Längen- und Zeichenbeschränkungen umfassen. Detailliertere Informationen zu Benennungsregeln finden Sie im Abschnitt Weitere Informationen am Ende dieses Moduls.
Öffentlicher Zugriff und Container als Sicherheitsgrenzen
Standardmäßig setzen alle Blobs Authentifizierung für den Zugriff voraus. Allerdings können Sie einzelne Container so konfigurieren, dass sie das öffentliche Herunterladen ihrer Blobs ohne Authentifizierung ermöglichen. Das öffentliche Herunterladen unterstützt viele Anwendungsfälle, wie z. B. das Hosten statischer Websiteressourcen und das Freigeben von Dateien. Dieser Ansatz funktioniert, da das Herunterladen von Blob-Inhalten genauso funktioniert wie das Lesen anderer Daten über das Web. Sie verweisen einfach auf einen Browser oder etwas, das eine GET-Anforderung an die Blob-URL senden kann.
Die Aktivierung des öffentlichen Zugriffs ist für die Skalierbarkeit wichtig. Direkt aus Blob Storage heruntergeladene Daten generieren keinen Datenverkehr in Ihrer serverseitigen App. Planen Sie die Verwendung separater Container für Daten, die öffentlich zugänglich sein sollen, auch wenn Sie den öffentlichen Zugriff nicht sofort erlauben oder eine Datenbank zur Kontrolle des Datenzugriffs verwenden.
Achtung
Jede*r, der/die die Speicher-URLs kennt, kann Blobs in einem für den öffentlichen Zugriff konfigurierten Container ohne jegliche Authentifizierung oder Prüfung herunterladen. Legen Sie Blobdaten niemals in einem öffentlichen Container ab, den Sie nicht öffentlich freigeben möchten.
Zusätzlich zum öffentlichen Zugriff bietet Azure ein Signaturfeature für freigegebenen Zugriff, das eine differenzierte Berechtigungensteuerung im Container ermöglicht. Eine präzise Zugriffssteuerung ermöglicht Szenarien, die die Skalierbarkeit weiter verbessern – die Berücksichtigung von Containern als Sicherheitsgrenzen ist also hilfreich.
Präfixe von Blobnamen (virtuelle Verzeichnisse)
Container sind flach. Sie unterstützen keine Art von Schachtelung oder Hierarchie. Wenn Sie Ihren Blobs hierarchische Namen geben, die wie Dateipfade aussehen (z. B. finance/budgets/2017/q1.xls), kann der Auflistungsvorgang der API Ergebnisse für bestimmte Präfixe filtern. Mit diesem Ansatz können Sie in der Liste wie in einem hierarchischen System aus Dateien und Ordnern navigieren.
Einige Tools und Clientbibliotheken verwenden diesen Ansatz, um Blob Storage so zu visualisieren und zu navigieren, als wäre es ein Dateisystem. Jede Ordnernavigation löst einen separaten Aufruf zum Auflisten von Blobs in diesem Ordner aus. Dieses Feature wird häufig als virtuelles Verzeichnis bezeichnet.
Hinweis
Wenn Sie das Feature „Hierarchischer Namespace“ des Kontos aktivieren, sind Verzeichnisse nicht mehr virtuell. Stattdessen werden sie zu konkreten, unabhängigen Objekten, auf die Sie direkt zugreifen können. Ein Verzeichnis kann existieren, ohne Dateien zu enthalten. In diesem Modul werden nur Konten beschrieben, für die das Feature „Hierarchischer Namespace“ nicht aktiviert ist.
Blobtypen
Es gibt drei verschiedene Arten von Blobs, in denen Sie Daten speichern können:
- Blockblobs bestehen aus Blöcken verschiedener Größen, die gleichzeitig und unabhängig voneinander hochgeladen werden können. Wenn Sie für einen Blockblob einen Schreibvorgang ausführen, werden Daten in Blöcke hochgeladen. Anschließend wird ein Commit ausgeführt, um die Blöcke in den Blob zu übertragen.
- Anfügeblobs sind spezielle Blockblobs, die nur das Anfügen neuer Daten unterstützen, nicht das Aktualisieren oder Löschen vorhandener Daten. Sie sind dafür für diesen Anwendungsfall effizient. Anfügeblobs eignen sich hervorragend für Szenarios wie das Speichern von Protokollen oder Schreiben von Streamingdaten.
- Seitenblobs sind für Szenarios mit Lese- und Schreibvorgängen mit wahlfreiem Zugriff vorgesehen. Seitenblobs werden verwendet, um die Dateien der virtuellen Festplatte (Virtual Hard Disk, VHD) zu speichern, die von Azure-VMs verwendet werden. Sie eignen sich hervorragend für jedes Szenario, das wahlfreien Zugriff erfordert.
Blockblobs sind die beste Wahl für die meisten Szenarios, die nicht speziell Anfüge- oder Seitenblobs erfordern. Ihre blockbasierte Struktur unterstützt schnelle Uploads und Downloads sowie den effizienten Zugriff auf individuelle Blobkomponenten. Die meisten Clientbibliotheken verwalten und übernehmen Blöcke automatisch. Einige können auch parallele Uploads und Downloads durchführen, um die Leistung zu maximieren.