Dela via


Fråga efter en Blob Storage-slutpunkt med hjälp av Azure Storage-hanteringsbiblioteket

En Blob Storage-slutpunkt utgör basadressen för alla objekt i ett lagringskonto. När du skapar ett lagringskonto anger du vilken typ av slutpunkt du vill använda. Blob Storage stöder två typer av slutpunkter:

  • En standardslutpunkt innehåller det unika lagringskontonamnet tillsammans med ett fast domännamn. Formatet för en standardslutpunkt är https://<storage-account>.blob.core.windows.net.
  • En Azure DNS-zonslutpunkt (förhandsversion) väljer dynamiskt en Azure DNS-zon och tilldelar den till lagringskontot när den skapas. Formatet för en Azure DNS-zonslutpunkt är https://<storage-account>.z[00-99].blob.storage.azure.net.

När ditt program skapar ett tjänstklientobjekt som ansluter till Blob Storage-dataresurser skickar du en URI som refererar till slutpunkten till tjänstklientkonstruktorn. Du kan konstruera URI-strängen manuellt, eller så kan du fråga efter tjänstslutpunkten vid körning med hjälp av Azure Storage-hanteringsbiblioteket.

Viktigt!

När du refererar till en tjänstslutpunkt i ett klientprogram rekommenderar vi att du undviker att använda ett beroende av en cachelagrad IP-adress. IP-adressen för lagringskontot kan komma att ändras, och om du förlitar dig på en cachelagrad IP-adress kan det leda till oväntat beteende.

CNAMEs som är associerade med en lagringskontoslutpunkt kan ändras utan föregående meddelande. Programmet bör inte vara beroende av antalet CNAME-poster eller de underdomäner som är associerade med dessa CNAME-poster.

Dessutom rekommenderar vi att du respekterar TTL (time-to-live) för DNS-posten och undviker att åsidosätta den. Att åsidosätta DNS TTL kan leda till oväntat beteende.

Mer information finns i CNAME-poster, underdomäner och IP-adresser.

Azure Storage-hanteringsbiblioteket ger programmatisk åtkomst till Azure Storage-resursprovidern. Resursprovidern är Azure Storage-implementeringen av Azure Resource Manager. Med hanteringsbiblioteket kan utvecklare hantera lagringskonton och kontokonfiguration samt konfigurera principer för livscykelhantering, principer för objektreplikering och oföränderlighetsprinciper.

I den här artikeln får du lära dig hur du kör frågor mot en Blob Storage-slutpunkt med hjälp av Azure Storage-hanteringsbiblioteket. Sedan använder du slutpunkten för att skapa ett BlobServiceClient objekt för att ansluta till Blob Storage-dataresurser.

Konfigurera projektet

Följ de här stegen för att konfigurera projektet om du vill arbeta med kodexemplen i den här artikeln.

Installera paket

Installera paket för att arbeta med de bibliotek som används i det här exemplet.

Installera följande paket med :dotnet add package

dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager.Storage
dotnet add package Azure.Storage.Blobs

Konfigurera appkoden

Lägg till nödvändiga using eller import direktiv i koden. Observera att kodexemplen kan dela upp funktioner mellan filer, men i det här avsnittet visas alla direktiv tillsammans.

Lägg till följande using direktiv:

using Azure.Core;
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.Storage;

Information om klientbiblioteket:

  • Azure.Identity: Tillhandahåller stöd för Microsoft Entra-tokenautentisering i Azure SDK och behövs för lösenordslösa anslutningar till Azure-tjänster.
  • Azure.ResourceManager.Storage: Stöder hantering av Azure Storage-resurser, inklusive resursgrupper och lagringskonton.
  • Azure.Storage.Blobs: Innehåller de primära klasser som du kan använda för att arbeta med Blob Storage-dataresurser.

Registrera lagringsresursprovidern med en prenumeration

En resursprovider måste registreras med din Azure-prenumeration innan du kan arbeta med den. Det här steget behöver bara utföras en gång per prenumeration och gäller endast om resursprovidern Microsoft.Storage för närvarande inte är registrerad med din prenumeration.

Du kan registrera lagringsresursprovidern eller kontrollera registreringsstatusen med hjälp av Azure-portalen, Azure CLI eller Azure PowerShell.

Du kan också använda Azure-hanteringsbiblioteken för att kontrollera registreringsstatusen och registrera lagringsresursprovidern, som du ser i följande exempel:

public static async Task RegisterSRPInSubscription(SubscriptionResource subscription)
{
    ResourceProviderResource resourceProvider = 
        await subscription.GetResourceProviderAsync("Microsoft.Storage");

    // Check the registration state of the resource provider and register, if needed
    if (resourceProvider.Data.RegistrationState == "NotRegistered")
        resourceProvider.Register();
}

Kommentar

För att utföra registeråtgärden behöver du behörigheter för följande Azure RBAC-åtgärd: Microsoft.Storage/register/action. Den här behörigheten ingår i rollerna Deltagare och Ägare .

Fråga efter Blob Storage-slutpunkten

För att hämta Blob Storage-slutpunkten för ett visst lagringskonto måste vi hämta egenskaperna för lagringskontot genom att anropa åtgärden Hämta egenskaper . Följande kodexempel använder både dataåtkomst- och hanteringsbiblioteken för att hämta en Blob Storage-slutpunkt för ett angivet lagringskonto:

Om du vill hämta egenskaperna för ett angivet lagringskonto använder du följande metod från ett StorageAccountCollection-objekt :

Den här metoden returnerar ett StorageAccountResource-objekt som representerar lagringskontot.

public static async Task<Uri> GetBlobServiceEndpoint(
    string storageAccountName,
    TokenCredential credential)
{
    // TODO: replace with your subscription ID and resource group name
    // You can locate your subscription ID on the Subscriptions blade
    // of the Azure portal (https://portal.azure.com)
    const string subscriptionId = "<subscription-id>";
    const string rgName = "<resource-group-name>";

    ArmClient armClient = new(credential);

    // Create a resource identifier, then get the subscription resource
    ResourceIdentifier resourceIdentifier = new($"/subscriptions/{subscriptionId}");
    SubscriptionResource subscription = armClient.GetSubscriptionResource(resourceIdentifier);

    // Get a resource group
    ResourceGroupResource resourceGroup = await subscription.GetResourceGroupAsync(rgName);

    // Get a collection of storage account resources
    StorageAccountCollection accountCollection = resourceGroup.GetStorageAccounts();

    // Get the properties for the specified storage account
    StorageAccountResource storageAccount = await accountCollection.GetAsync(storageAccountName);

    // Return the primary endpoint for the blob service
    return storageAccount.Data.PrimaryEndpoints.BlobUri;
}

Skapa ett klientobjekt med hjälp av slutpunkten

När du har Blob Storage-slutpunkten för ett lagringskonto kan du instansiera ett klientobjekt för att arbeta med dataresurser. Följande kodexempel skapar ett BlobServiceClient objekt med den slutpunkt som vi hämtade i det tidigare exemplet:

// Create an instance of DefaultAzureCredential for authorization
TokenCredential credential = new DefaultAzureCredential();

// TODO: replace with your storage account name
string storageAccountName = "<storage-account-name>";

// Call out to our function that retrieves the blob service endpoint for the given storage account
Uri blobURI = await AccountProperties.GetBlobServiceEndpoint(storageAccountName, credential);
Console.WriteLine($"URI: {blobURI}");

// Now that we know the endpoint, create the client object
BlobServiceClient blobServiceClient = new(blobURI, credential);

// Do something with the storage account or its resources ...

Nästa steg

Visa fullständiga kodexempel (GitHub):

Mer information om hur du skapar klientobjekt finns i Skapa och hantera klientobjekt som interagerar med dataresurser.