Zelfstudie: Afbeeldingsgegevens uploaden in de cloud met Azure Storage

Deze zelfstudie is deel één van een serie. In deze zelfstudie leert u hoe u een web-app implementeert. De web-app maakt gebruik van de Azure Blob Storage-clientbibliotheek om afbeeldingen te uploaden naar een opslagaccount. Wanneer u klaar bent, hebt u een web-app die afbeeldingen vanuit Azure-opslag kan opslaan en weergeven.

In deel 1 van de reeks leert u het volgende:

  • Create a storage account
  • Een container maken en machtigingen instellen
  • Een toegangssleutel ophalen
  • Een web-app implementeren in Azure
  • App-instellingen configureren
  • Interactie met de web-app

Vereisten

U hebt een Azure-abonnement nodig om deze zelfstudie te voltooien. Maak een gratis account voordat u begint.

Azure Cloud Shell gebruiken

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. Voorbeeld van Uitproberen voor Azure Cloud Shell
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Cloud Shell starten in een nieuw venster
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Knop Cloud Shell in de Azure Portal

Om de code in dit artikel in Azure Cloud Shell uit te voeren:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.

  3. Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.

  4. Selecteer Invoeren om de code uit te voeren.

Als u de CLI lokaal wilt installeren en gebruiken, voert u Azure CLI versie 2.0.4 of hoger uit. Voer az --version uit om de versie te bekijken. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.

Een resourcegroep maken

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt.

Maak een resourcegroep met de opdracht New-AzResourceGroup. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.

New-AzResourceGroup -Name myResourceGroup -Location southeastasia

Create a storage account

Met het voorbeeld worden afbeeldingen geüpload naar een blobcontainer in een Azure Storage-account. Een opslagaccount biedt een unieke naamruimte voor het opslaan en openen van uw Azure Storage-gegevensobjecten.

Belangrijk

In deel 2 van de zelfstudie gebruikt u Azure Event Grid met Blob-opslag. Zorg dat u het opslagaccount maakt in een Azure-regio die ondersteuning biedt voor Event Grid. Zie Azure-producten per regio voor een lijst met ondersteunde regio's.

Vervang de tijdelijke aanduiding <blob_storage_account> in de volgende opdracht door uw eigen, wereldwijd unieke naam voor het Blob-opslagaccount.

Maak een opslagaccount in de resourcegroep die u hebt gemaakt met behulp van de opdracht New-AzStorageAccount.

$blobStorageAccount="<blob_storage_account>"

New-AzStorageAccount -ResourceGroupName myResourceGroup -Name $blobStorageAccount -SkuName Standard_LRS -Location southeastasia -Kind StorageV2 -AccessTier Hot

Blob-opslagcontainers maken

De app gebruikt twee containers in het Blob Storage-account. Containers zijn vergelijkbaar met mappen. Hier worden blobs opgeslagen. In de container images worden afbeeldingen in volledige resolutie opgeslagen. In een later deel van de reeks uploadt een Azure-functie-app formaatafbeeldingsminiaturen naar de *miniatuur

De openbare toegang tot de container met de installatiekopieën is ingesteld op off. De openbare toegang tot de container met miniaturen is ingesteld op container. De instelling container van de openbare toegang zorgt ervoor dat gebruikers die de webpagina bezoeken, de miniaturen kunnen bekijken.

Haal de sleutel van het opslagaccount op met behulp van de opdracht Get-AzStorageAccountKey. Gebruik vervolgens deze sleutel om twee containers te maken met de opdracht New-AzStorageContainer.

$blobStorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName myResourceGroup -Name $blobStorageAccount).Key1
$blobStorageContext = New-AzStorageContext -StorageAccountName $blobStorageAccount -StorageAccountKey $blobStorageAccountKey

New-AzStorageContainer -Name images -Context $blobStorageContext
New-AzStorageContainer -Name thumbnails -Permission Container -Context $blobStorageContext

Noteer de naam en sleutel van het Blob-opslagaccount. De voorbeeld-app maakt gebruik van deze instellingen om verbinding te maken met het opslagaccount om de afbeeldingen te uploaden.

Een App Service-plan maken

Een App Service-plan geeft de locatie, de grootte en de functies van de webserverfarm aan die als host fungeert voor uw app.

In het volgende voorbeeld wordt een App Service-plan gemaakt met de naam myAppServicePlan en de prijscategorie Gratis:

Maak een App Service plan met de opdracht New-AzAppServicePlan.

New-AzAppServicePlan -ResourceGroupName myResourceGroup -Name myAppServicePlan -Tier "Free"

Een webtoepassing maken

De web-app biedt een hostingruimte voor de code van de voorbeeld-app. De ruimte wordt geïmplementeerd vanuit de GitHub-voorbeeld opslagplaats.

Vervang <web_app> in de volgende opdracht door een unieke naam. Geldige tekens zijn a-z, 0-9 en -. Als <web_app> niet uniek is, krijgt u het volgende foutbericht: Er bestaat al een website met de naam <web_app>. De standaard-URL van de web-app is https://<web_app>.azurewebsites.net.

Maak een web-app in myAppServicePlan App Service-abonnement met de opdracht New-AzWebApp.

$webapp="<web_app>"

New-AzWebApp -ResourceGroupName myResourceGroup -Name $webapp -AppServicePlan myAppServicePlan

Voorbeeld-app implementeren vanuit de GitHub-opslagplaats

App Service ondersteunt diverse manieren om inhoud in een web-app te implementeren. In deze zelfstudie implementeert u de web-app vanaf een openbare GitHub-voorbeeldopslagplaats (Engelstalig). Configureer GitHub-implementatie naar de webtoepassing met de opdracht az webapp deployment source config.

Het voorbeeldproject bevat een ASP.NET MVC-app. De app accepteert een afbeelding, slaat deze op in een opslagaccount en geeft afbeeldingen weer vanuit een miniaturencontainer. De web-app maakt gebruik van de naamruimten Azure.Storage, Azure.Storage.Blobs en Azure.Storage.Blobs.Models voor interactie met de Azure Storage-service.

az webapp deployment source config --name $webapp --resource-group myResourceGroup \
  --branch master --manual-integration \
  --repo-url https://github.com/Azure-Samples/storage-blob-upload-from-webapp
az webapp deployment source config --name $webapp --resource-group myResourceGroup `
  --branch master --manual-integration `
  --repo-url https://github.com/Azure-Samples/storage-blob-upload-from-webapp

Web-app-instellingen configureren

De voorbeeld-web-app gebruikt de Azure Storage Api's voor .NET om installatiekopieën te uploaden. Referenties van het opslagaccount worden ingesteld in de app-instellingen voor de web-app. Voeg app-instellingen toe aan de geïmplementeerde app met de opdracht az webapp config appsettings set of New-AzStaticWebAppSetting.

az webapp config appsettings set --name $webapp --resource-group myResourceGroup \
  --settings AzureStorageConfig__AccountName=$blobStorageAccount \
    AzureStorageConfig__ImageContainer=images \
    AzureStorageConfig__ThumbnailContainer=thumbnails \
    AzureStorageConfig__AccountKey=$blobStorageAccountKey
az webapp config appsettings set --name $webapp --resource-group myResourceGroup `
  --settings AzureStorageConfig__AccountName=$blobStorageAccount `
    AzureStorageConfig__ImageContainer=images `
    AzureStorageConfig__ThumbnailContainer=thumbnails `
    AzureStorageConfig__AccountKey=$blobStorageAccountKey

Wanneer de web-app is geïmplementeerd en geconfigureerd, kunt u de functionaliteit voor het uploaden van afbeeldingen in de app testen.

Een installatiekopie uploaden

U kunt de web-app testen door naar de URL van de gepubliceerde app te gaan. De standaard-URL van de web-app is https://<web_app>.azurewebsites.net.

Selecteer het gebied Upload photos als u een bestand wilt opgeven en uploaden, of sleep een bestand naar het gebied. Als de afbeelding is geüpload, verdwijnt deze. De sectie Gegenereerde miniaturen blijft leeg totdat we deze verderop in deze zelfstudie testen.

Foto's uploaden in .NET

In de voorbeeldcode wordt de taak UploadFileToStorage in bestand Storagehelper.cs gebruikt om de afbeeldingen door middel van de methode UploadAsync te uploaden naar de container images in het opslagaccount. Het volgende codevoorbeeld bevat de taak UploadFileToStorage.

public static async Task<bool> UploadFileToStorage(Stream fileStream, string fileName,
                                                    AzureStorageConfig _storageConfig)
{
    // Create a URI to the blob
    Uri blobUri = new Uri("https://" +
                          _storageConfig.AccountName +
                          ".blob.core.windows.net/" +
                          _storageConfig.ImageContainer +
                          "/" + fileName);

    // Create StorageSharedKeyCredentials object by reading
    // the values from the configuration (appsettings.json)
    StorageSharedKeyCredential storageCredentials =
        new StorageSharedKeyCredential(_storageConfig.AccountName, _storageConfig.AccountKey);

    // Create the blob client.
    BlobClient blobClient = new BlobClient(blobUri, storageCredentials);

    // Upload the file
    await blobClient.UploadAsync(fileStream);

    return await Task.FromResult(true);
}

In de vorige taak zijn de volgende klassen en methoden gebruikt:

Klasse Methode
Uri URI-constructor
StorageSharedKeyCredential StorageSharedKeyCredential(String, String)-constructor
BlobClient UploadAsync

Controleren of de afbeelding in het opslagaccount wordt weergegeven

Meld u aan bij de Azure-portal. In het linkermenu selecteert u opslagaccounts en vervolgens de naam van uw opslagaccount. Selecteer Containers en vervolgens de container voor afbeeldingen.

Controleer of de afbeelding in de container wordt weergegeven.

Vermelding in Azure-portal van container voor afbeeldingen

Weergave van miniaturen testen

Als u de weergave van miniaturen wilt testen, uploadt u een afbeelding naar de container thumbnails om te controleren of de app de container thumbnails kan lezen.

Meld u aan bij de Azure-portal. In het linkermenu selecteert u opslagaccounts en vervolgens de naam van uw opslagaccount. Selecteer Containers en vervolgens de container voor miniaturen. Selecteer Uploaden om het deelvenster Blob uploaden te openen.

Kies een bestand met de bestandenkiezer en selecteer Uploaden.

Ga terug naar de app om te controleren of de naar de thumbnails-container geüploade afbeelding zichtbaar is.

In deel twee van de serie automatiseert u het maken van miniatuurafbeeldingen zodat u deze afbeelding niet nodig hebt. In de thumbnails-container selecteert u de geüploade afbeelding en vervolgens Verwijderen om de afbeelding te verwijderen.

U kunt Content Delivery Network (CDN) naar cache-inhoud inschakelen vanuit het Azure-opslagaccount. Zie Een Azure storage-account integreren met Azure CDN voor meer informatie.

Volgende stappen

In deel één van de serie hebt u geleerd hoe u een web-app configureert om te communiceren met opslag.

Ga verder met deel twee van de serie om te leren hoe u Event Grid gebruikt om een Azure-functie te activeren om het formaat van een afbeelding aan te passen.