Développer pour Azure Files avec C++
Conseil
Testez Microsoft Azure Storage Explorer
Microsoft Azure Storage Explorer est une application autonome et gratuite de Microsoft qui vous permet d’exploiter visuellement les données de Stockage Azure sur Windows, macOS et Linux.
S’applique à
Type de partage de fichiers | SMB | NFS |
---|---|---|
Partages de fichiers Standard (GPv2), LRS/ZRS | ||
Partages de fichiers Standard (GPv2), GRS/GZRS | ||
Partages de fichiers Premium (FileStorage), LRS/ZRS |
À propos de ce didacticiel
Ce tutoriel explique comment effectuer des opérations de base sur Azure Files en utilisant C++. Si vous ne connaissez pas Azure Files, l’étude des concepts abordés dans les sections suivantes vous sera utile pour comprendre les exemples. Voici quelques-uns des exemples traités :
- Créer et supprimer des partages de fichiers Azure
- Créer et supprimer des répertoires
- Charger, télécharger et supprimer un fichier
- Définir et répertorier les métadonnées d’un fichier
Notes
Comme Azure Files est accessible sur SMB, vous pouvez écrire des applications simples qui accèdent au partage de fichiers Azure à l’aide des fonctions et des classes d’E/S C++ standard. Cet article indique comment écrire des applications qui utilisent le SDK C++ Stockage Azure, lequel a recours à l’API REST Fichier pour communiquer avec Azure Files.
Prérequis
- Abonnement Azure
- Compte Azure Storage
- Compilateur C++
- CMake
- Vcpkg - Gestionnaire de package C et C++
Configuration
Cette section vous guide tout au long de la préparation d’un projet pour utiliser la bibliothèque de client Stockage Blob Azure v12 pour C++.
Installer les packages
La commande vcpkg install
installe le kit de développement logiciel (SDK) d’Azure Storage Blob pour C++ et les dépendances nécessaires :
vcpkg.exe install azure-storage-files-shares-cpp:x64-windows
Pour plus d’informations, visitez GitHub pour acquérir et créer le SDK Azure pour C++.
Créer le projet
Dans Visual Studio, créez une nouvelle application console C++ pour Windows appelée FilesShareQuickstartV12.
Copier vos informations d’identification depuis le portail Azure
Lorsque l’exemple d’application effectue une requête auprès du stockage Azure, il doit être autorisé. Pour autoriser une demande, ajoutez les informations d’identification de votre compte de stockage à l’application sous la forme d’une chaîne de connexion. Pour afficher les informations d’identification de votre compte de stockage, effectuez les étapes suivantes :
Connectez-vous au portail Azure.
Recherchez votre compte de stockage.
Dans le volet de menu du compte de stockage, sous Sécurité + réseau, sélectionnez Clés d’accès. Ici, vous pouvez afficher les clés d’accès du compte et la chaîne de connexion complète pour chaque clé.
Dans le volet Clés d’accès, sélectionnez Afficher les clés.
Dans la section clé1, recherchez la valeur Chaîne de connexion. Sélectionnez l’icône Copier dans le Presse-papiers pour copier la chaîne de connexion. Vous ajouterez la valeur de chaîne de connexion à une variable d’environnement dans la section suivante.
Configurer votre chaîne de connexion de stockage
Après avoir copié la chaîne de connexion, écrivez-la dans une variable d’environnement sur l’ordinateur local exécutant l’application. Pour définir la variable d’environnement, ouvrez une fenêtre de console et suivez les instructions pour votre système d’exploitation. Remplacez <yourconnectionstring>
par votre chaîne de connexion.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Après avoir ajouté la variable d’environnement dans Windows, vous devez démarrer une nouvelle instance de la fenêtre de commande.
Redémarrer des programmes
Après avoir ajouté la variable d’environnement, redémarrez tous les programmes en cours d’exécution qui devront la lire. Par exemple, redémarrez l’environnement ou l’éditeur de développement avant de continuer.
Exemples de code
Ces exemples d’extraits de code vous montrent comment effectuer les tâches suivantes avec la bibliothèque de partage de fichiers Stockage Azure pour C++ :
- Ajouter des fichiers include
- Obtenir la chaîne de connexion
- Créer un partage de fichiers
- Charger des fichiers dans un partage de fichiers
- Définir les métadonnées d’un fichier
- Répertorier les métadonnées d’un fichier
- Télécharger des fichiers
- Supprimer un fichier
- Supprimer un partage de fichiers
Ajouter des fichiers include
À partir du répertoire de projet :
- Ouvrez le fichier solution FilesShareQuickstartV12.sln dans Visual Studio.
- Dans Visual Studio, ouvrez le fichier source FilesShareQuickstartV12.cpp.
- Supprimez le code dans
main
qui a été généré automatiquement. - Ajoutez des instructions
#include
.
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <azure/storage/files/shares.hpp>
Obtenir la chaîne de connexion
Le code ci-dessous récupère la chaîne de connexion pour votre compte de stockage dans la variable d’environnement créée dans Configurer votre chaîne de connexion de stockage.
Ajoutez ce code dans main()
:
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING.
// Note that _MSC_VER is set when using MSVC compiler.
static const char* AZURE_STORAGE_CONNECTION_STRING = "AZURE_STORAGE_CONNECTION_STRING";
#if !defined(_MSC_VER)
const char* connectionString = std::getenv(AZURE_STORAGE_CONNECTION_STRING);
#else
// Use getenv_s for MSVC
size_t requiredSize;
getenv_s(&requiredSize, NULL, NULL, AZURE_STORAGE_CONNECTION_STRING);
if (requiredSize == 0) {
throw std::runtime_error("missing connection string from env.");
}
std::vector<char> value(requiredSize);
getenv_s(&requiredSize, value.data(), value.size(), AZURE_STORAGE_CONNECTION_STRING);
std::string connectionStringStr = std::string(value.begin(), value.end());
const char* connectionString = connectionStringStr.c_str();
#endif
Créer un partage de fichiers
Créez une instance de la classe ShareClient en appelant la fonction CreateFromConnectionString. Ensuite, appelez CreateIfNotExists pour créer le partage de fichiers réel dans votre compte de stockage.
Ajoutez ce code à la fin de main()
:
using namespace Azure::Storage::Files::Shares;
std::string shareName = "sample-share";
// Initialize a new instance of ShareClient
auto shareClient = ShareClient::CreateFromConnectionString(connectionString, shareName);
// Create the files share. This will do nothing if the files share already exists.
std::cout << "Creating files share: " << shareName << std::endl;
shareClient.CreateIfNotExists();
Charger des fichiers dans un partage de fichiers
L’extrait de code suivant :
- Déclare une chaîne contenant « Hello Azure! ».
- Obtient une référence à un objet ShareFileClient en récupérant le ShareDirectoryClient racine, puis en appelant GetFileClient sur le partage de fichiers à partir de la section Créer un partage de fichiers.
- Charge la chaîne dans le fichier en appelant la fonction UploadFrom. Cette fonction crée le fichier s’il n’existe pas déjà ou le remplace s’il existe.
Ajoutez ce code à la fin de main()
:
std::string fileName = "sample-file";
uint8_t fileContent[] = "Hello Azure!";
// Create the ShareFileClient
ShareFileClient fileClient = shareClient.GetRootDirectoryClient().GetFileClient(fileName);
// Upload the file
std::cout << "Uploading file: " << fileName << std::endl;
fileClient.UploadFrom(fileContent, sizeof(fileContent));
Définir les métadonnées d’un fichier
Définissez les propriétés de métadonnées d’un fichier en appelant la fonction ShareFileClient.SetMetadata.
Ajoutez ce code à la fin de main()
:
Azure::Storage::Metadata fileMetadata = { {"key1", "value1"}, {"key2", "value2"} };
fileClient.SetMetadata(fileMetadata);
Répertorier les métadonnées d’un fichier
Obtenez les propriétés de métadonnées d’un fichier en appelant la fonction ShareFileClient.GetProperties. Les métadonnées se trouvent sous le champ Metadata
du Value
retourné. Les métadonnées sont une paire clé-valeur, similaire à l’exemple de définition des métadonnées d’un fichier.
// Retrieve the file properties
auto properties = fileClient.GetProperties().Value;
std::cout << "Listing blob metadata..." << std::endl;
for (auto metadata : properties.Metadata)
{
std::cout << metadata.first << ":" << metadata.second << std::endl;
}
Télécharger les fichiers
Après avoir récupéré les propriétés du fichier dans, Répertorier les métadonnées d’un fichier un nouvel objet std::vector<uint8_t>
est créé à l’aide des propriétés du fichier téléchargé. Téléchargez le fichier créé précédemment dans le nouvel objet std::vector<uint8_t>
en appelant la fonction DownloadTo dans la classe de base ShareFileClient. Enfin, affichez les données du fichier téléchargé.
Ajoutez ce code à la fin de main()
:
std::vector<uint8_t> fileDownloaded(properties.FileSize);
fileClient.DownloadTo(fileDownloaded.data(), fileDownloaded.size());
std::cout << "Downloaded file contents: " << std::string(fileDownloaded.begin(), fileDownloaded.end()) << std::endl;
Supprimer un fichier
Le code suivant supprime l’objet blob du partage de fichiers Stockage Azure en appelant la fonction ShareFileClient.Delete.
std::cout << "Deleting file: " << fileName << std::endl;
fileClient.DeleteIfExists();
Supprimer un partage de fichiers
Le code suivant nettoie les ressources que l’application a créées en supprimant l’intégralité du partage de fichiers à l’aide de ShareClient.Delete.
Ajoutez ce code à la fin de main()
:
std::cout << "Deleting files share: " << shareName << std::endl;
shareClient.DeleteIfExists();
Exécuter le code
Cette application crée un conteneur et charge un fichier texte dans Stockage Blob Azure. L’exemple liste ensuite le ou les objets blob du conteneur, télécharge le fichier et affiche le contenu du fichier. Enfin, l’application supprime l’objet blob et le conteneur.
La sortie de l’application ressemble à l’exemple suivant :
Azure Files Shares storage v12 - C++ quickstart sample
Creating files share: sample-share
Uploading file: sample-file
Listing file metadata...
key1:value1
key2:value2
Downloaded file contents: Hello Azure!
Deleting file: sample-file
Deleting files share: sample-share
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez découvert comment charger, télécharger et lister des fichiers en utilisant C++. Vous avez également découvert comment créer et supprimer un partage de fichiers Stockage Azure.
Pour voir un exemple d’application Stockage Blob C++, passez à :