Partage via


Définir ou modifier le niveau d’accès d’un objet blob de blocs avec .NET

Cet article montre comment utiliser le niveau d’accès des objets blob de blocs avec la bibliothèque de client Stockage Azure pour .NET.

Prérequis

Paramétrer votre environnement

Si vous n’avez pas de projet existant, cette section vous montre comment configurer un projet pour travailler avec la bibliothèque de client Stockage Blob Azure pour .NET. Les étapes comprennent l’installation du package, l’ajout de directives using et la création d’un objet client autorisé. Pour plus d’informations, consultez Prise en main du Stockage Blob Azure et de .NET.

Installer des packages

À partir du répertoire du projet, installez les packages des bibliothèques de client Stockage Blob Azure et Azure Identity à l’aide de la commande dotnet add package. Le package Azure.Identity est nécessaire pour les connexions sans mot de passe aux services Azure.

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

Ajoutez des directives using.

Ajoutez ces directives using au début de votre fichier de code :

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

Certains exemples de code de cet article peuvent nécessiter des directives using supplémentaires.

Créer un objet client

Pour connecter une application au Stockage Blob, créez une instance de BlobServiceClient. L’exemple suivant montre comment créer un objet client à l’aide de DefaultAzureCredential pour l’autorisation :

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

Vous pouvez inscrire un client de service pour l’injection de dépendances dans une application .NET.

Vous pouvez également créer des objets clients pour des conteneurs ou des objets blob spécifiques. Pour en savoir plus sur la création et la gestion d’objets clients, consultez Créer et gérer des objets clients qui interagissent avec des ressources de données.

Autorisation

Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour définir le niveau d'accès d’un blob. Pour l’autorisation avec Microsoft Entra ID (recommandé), vous devez disposer au minimum du rôle RBAC Azure intégré Contributeur aux données Blob du stockage. Pour en savoir plus, veuillez consulter l’aide sur l’autorisation pour définir un niveau d’objet blob.

Comprendre les niveaux d’accès aux objets blob de blocs

Pour gérer les coûts liés à vos besoins en matière de stockage, il peut être utile d’organiser vos données en fonction de la fréquence à laquelle elles sont accessibles et de la durée pendant laquelle elles devront conservées. Le Stockage Azure offre différents niveaux d’accès afin que vous puissiez stocker vos données d’objet blob de la manière la plus économique en fonction de la façon dont elles sont utilisées.

Niveaux d’accès pour les données d’objets blob

Les niveaux d’accès Stockage Azure comprennent les suivants :

  • Niveau chaud : niveau en ligne optimisé pour le stockage des données qui sont fréquemment consultées ou modifiées. Le niveau chaud offre les coûts de stockage les plus élevés, mais les coûts d’accès les plus faibles.
  • Niveau froid : niveau en ligne optimisé pour le stockage des données rarement consultées ou modifiées. Les données dans le niveau d’accès froid doivent être stockées pendant un minimum de 30 jours. Le niveau d’accès froid possède des coûts de stockage plus faibles et des coûts d’accès plus élevés que le niveau chaud.
  • Niveau froid : niveau en ligne optimisé pour le stockage des données rarement consultées ou modifiées. Les données dans le niveau d’accès froid doivent être stockées pendant un minimum de 90 jours. Le niveau d’accès froid possède des coûts de stockage plus faibles et des coûts d’accès plus élevés que le niveau sporadique.
  • Niveau Archive : un niveau hors connexion optimisé pour le stockage des données rarement sollicitées, sous des conditions de latence flexibles, de l’ordre de quelques heures. Les données dans le niveau Archive doivent être stockées pendant un minimum de 180 jours.

Pour en savoir plus sur les niveaux d’accès, consultez Niveaux d’accès pour les données blob.

Lorsqu’un objet blob se trouve dans le niveau d’accès Archive, il est considéré comme hors connexion et ne peut être ni lu ni modifié. Pour lire ou modifier les données d'un blob archivé, vous devez d'abord réhydrater le blob à un niveau en ligne. Pour en savoir plus sur la réactivation d’objets blob à partir du niveau archive vers un niveau en ligne, consultez Réhydratation d’objets blob à partir du niveau archive.

Restrictions

La définition du niveau d’accès est autorisée seulement sur les objets blob de blocs. Pour en savoir plus sur les restrictions relatives à la définition du niveau d’accès d’un objet blob de blocs, consultez Définir le niveau d’objet blob (API REST).

Notes

Pour définir le niveau d’accès sur Cold à l’aide de .NET, vous devez utiliser une version minimale de la bibliothèque cliente de la version 12.15.0.

Définir le niveau d’accès d’un objet blob pendant le chargement

Vous pouvez définir le niveau d’accès d’un objet blob lors du chargement à l’aide de la classe BlobUploadOptions . L’exemple de code suivant montre comment définir le niveau d’accès lors du chargement d’un objet blob :

public static async Task UploadWithAccessTierAsync(
    BlobContainerClient containerClient,
    string localFilePath)
{
    string fileName = Path.GetFileName(localFilePath);
    BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);

    var uploadOptions = new BlobUploadOptions()
    {
        AccessTier = AccessTier.Cool
    };

    FileStream fileStream = File.OpenRead(localFilePath);
    await blockBlobClient.UploadAsync(fileStream, uploadOptions);
    fileStream.Close();
}

Pour en savoir plus sur le chargement d’un objet blob avec .NET, consultez Charger un objet blob avec .NET.

Modifier le niveau d’accès d’un objet blob de blocs existant

Vous pouvez modifier le niveau d’accès d’un objet blob de blocs existant à l’aide de l’une des fonctions suivantes :

L’exemple de code suivant montre comment modifier le niveau d’accès d’un objet blob existant en Cool :

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

Si vous réhydratez un objet blob archivé, vous pouvez éventuellement définir le paramètre rehydratePriority sur High ou Standard.

Copier un objet blob dans un niveau d’accès différent

Vous pouvez modifier le niveau d’accès d’un objet blob de blocs existant en spécifiant un niveau d’accès dans le cadre d’une opération de copie. Pour modifier le niveau d’accès pendant une opération de copie, utilisez la classe BlobCopyFromUriOptions et spécifiez la propriété AccessTier. Si vous réhydratez un objet blob à partir du niveau d’archive à l’aide d’une opération de copie, vous pouvez éventuellement définir la propriété RehydratePriority sur High ou Standard.

L’exemple de code suivant montre comment réhydrater un objet blob archivé au niveau Hot à l’aide d’une opération de copie :

public static async Task RehydrateBlobUsingCopyAsync(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob)
{
    // Note: the destination blob must have a different name than the archived source blob

    // Configure copy options to specify hot tier and standard priority
    BlobCopyFromUriOptions copyOptions = new()
    {
        AccessTier = AccessTier.Hot,
        RehydratePriority = RehydratePriority.Standard
    };

    // Copy source blob from archive tier to destination blob in hot tier
    CopyFromUriOperation copyOperation = await destinationRehydratedBlob
        .StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
    await copyOperation.WaitForCompletionAsync();
}

Pour en savoir plus sur la copie d’un objet blob avec .NET, consultez Copier un objet blob avec .NET.

Ressources

Pour en savoir plus sur la définition de niveaux d’accès à l’aide de la bibliothèque de client Stockage Blob Azure pour .NET, consultez les ressources suivantes.

Exemples de code

Opérations de l'API REST

Le Kit de développement logiciel (SDK) Azure pour .NET contient des bibliothèques qui s'appuient sur l'API REST Azure, vous permettant d’interagir avec les opérations de l’API REST par le biais de paradigmes .NET familiers. Les méthodes de bibliothèque de client pour la définition de niveaux d’accès utilisent l’opération d’API REST suivante :

Ressources de bibliothèque cliente

Voir aussi

  • Cet article fait partie du guide du développeur Stockage Blob pour .NET. Pour en savoir plus, consultez la liste complète des articles du guide du développeur dans Générer votre application .NET.