Een opslagstrategie ontwikkelen voor een organisatie
Wanneer u een app ontwerpt die gegevens moet opslaan, is het belangrijk om na te denken over hoe de app gegevens gaat ordenen in opslagaccounts, containers en blobs.
Opslagaccounts
Eén opslagaccount is flexibel genoeg om uw blobs te organiseren. U moet echter zo nodig meer opslagaccounts gebruiken om de kosten logisch te scheiden en de toegang tot gegevens te beheren.
Containers en blobs
De aard van uw app en de gegevens die worden opgeslagen, moeten uw strategie voor het benoemen en ordenen van containers en blobs stimuleren.
Apps die gebruikmaken van blobs als onderdeel van een opslagschema dat een database bevat, hoeven vaak niet sterk te vertrouwen op organisatie, naamgeving of metagegevens om iets over hun gegevens aan te geven. In dergelijke apps worden meestal id’s zoals GUID’s gebruikt als namen voor blobs en wordt er in de databaserecords naar deze id’s verwezen. De app gebruikt de database om te bepalen waar blobs worden opgeslagen en het soort gegevens dat ze bevatten.
Andere apps maken gebruik van Azure Blob Storage, net als een persoonlijk bestandssysteem. Container- en blobnamen geven betekenis en structuur aan. Blobnamen in dit soort apps zien er vaak uit als traditionele bestandsnamen. Ze kunnen bestandsnaamextensies bevatten, zoals .jpg om aan te geven welk type gegevens ze bevatten. Dergelijke apps gebruiken virtuele mappen om blobs te organiseren. Ze gebruiken vaak metagegevenstags om informatie over blobs en containers op te slaan.
Houd rekening met de volgende aandachtspunten bij het organiseren en opslaan van blobs en containers.
Beperkingen voor naamgeving
De namen van blobs en containers moeten voldoen aan een set regels, zoals lengtebeperkingen en toegestane tekens. Zie de sectie Meer lezen aan het einde van deze module voor meer specifieke informatie over naamgevingsregels.
Openbare toegang en containers als beveiligingsgrenzen
Standaard is verificatie vereist voor de toegang tot alle blobs. U kunt echter afzonderlijke containers configureren om openbaar downloaden van hun blobs zonder verificatie toe te staan. Openbaar downloaden ondersteunt veel gebruiksvoorbeelden, zoals het hosten van statische websiteactiva en het delen van bestanden. Deze aanpak werkt omdat het downloaden van blob-inhoud op dezelfde manier werkt als het lezen van andere gegevens via internet. U wijst alleen een browser of iets aan dat een GET-aanvraag kan indienen bij de blob-URL.
Het inschakelen van openbare toegang is belangrijk voor schaalbaarheid. Gegevens die rechtstreeks vanuit Blob Storage worden gedownload, genereren geen verkeer in uw server-app. Plan het gebruik van afzonderlijke containers voor gegevens die openbaar beschikbaar moeten zijn, zelfs als u niet onmiddellijk openbare toegang toestaat of een database gebruikt om de toegang tot gegevens te beheren.
Let op
Iedereen die de opslag-URL's kent, kan blobs downloaden in een container die is geconfigureerd voor openbare toegang zonder enige vorm van verificatie of controle. Plaats blob-gegevens die u niet openbaar wilt maken nooit in een openbare container.
Naast openbare toegang biedt Azure een functie voor Shared Access Signature waarmee u de machtigingen voor containers zeer gedetailleerd kunt regelen. Precisietoegangsbeheer maakt scenario's mogelijk die de schaalbaarheid verder verbeteren, dus het is handig om na te denken over containers als beveiligingsgrenzen.
Voorvoegsels van blob-namen (virtuele mappen)
Containers zijn plat. Ze bieden geen ondersteuning voor geneste of hiërarchie. Als u uw blobs hiërarchische namen geeft die eruitzien als bestandspaden, zoals financiën/budgetten/2017/q1.xls, kan de vermeldingsbewerking van de API resultaten filteren op specifieke voorvoegsels. Met deze methode kunt u door de lijst navigeren alsof het een hiërarchisch systeem van bestanden en mappen was.
Sommige hulpprogramma's en clientbibliotheken gebruiken deze methode om Blob Storage te visualiseren en te navigeren alsof het een bestandssysteem was. Met elke mapnavigatie wordt een aparte aanroep voor het vermelden van de blobs in die map geactiveerd. Deze functie wordt vaak virtuele mappen genoemd.
Notitie
Als u de hiërarchische naamruimtefunctie van het account inschakelt, zijn mappen niet meer virtueel. In plaats daarvan worden ze concrete, onafhankelijke objecten waarop u rechtstreeks kunt werken. Een map kan bestaan zonder bestanden te bevatten. In deze module worden alleen accounts beschreven waarvoor geen hiërarchische naamruimtefunctie is ingeschakeld.
Blob-typen
Er zijn drie verschillende soorten blobs waarin u gegevens kunt opslaan:
- Blok-blobs bestaan uit blokken van verschillende omvang die onafhankelijk en parallel kunnen worden geüpload. Voor het schrijven naar een blok-blob moeten gegevens worden geüpload naar blokken en worden doorgevoerd in de blob.
- Toevoeg-blobs zijn speciale blok-blobs die alleen nieuwe gegevens toevoegen, niet bestaande gegevens bijwerken of verwijderen. Ze zijn efficiënt voor dit doel. Toevoeg-blobs zijn ideaal voor scenario’s waarin logboeken worden opgeslagen of gestreamde gegevens worden geschreven.
- Pagina-blobs ondersteunen scenario's waarbij lees- en schrijfbewerkingen voor willekeurige toegang nodig zijn. Pagina-blobs worden gebruikt voor het opslaan van de VHD-bestanden (virtuele harde schijf) die worden gebruikt door Azure Virtual Machines. Ze zijn ideaal voor elk scenario dat willekeurige toegang omvat.
Blok-blobs zijn de beste keuze voor de meeste scenario’s waarin toevoeg- of pagina-blobs niet specifiek nodig zijn. De structuur op basis van blokken ondersteunt snelle uploads en downloads en efficiënte toegang tot afzonderlijke stukken van een blob. De meeste clientbibliotheken beheren en doorvoeren blokken automatisch. Sommige verwerken ook parallelle uploads en downloads om de prestaties te maximaliseren.