Vývoj pro Soubory Azure pomocí jazyka C++
Tip
Vyzkoušení Microsoft Azure Storage Exploreru
Microsoft Azure Storage Explorer je bezplatná samostatná aplikace od Microsoftu, která umožňuje vizuálně pracovat s daty Azure Storage ve Windows, macOS a Linuxu.
Platí pro
Typ sdílené složky | SMB | NFS |
---|---|---|
Sdílené složky úrovně Standard (GPv2), LRS/ZRS | ||
Sdílené složky úrovně Standard (GPv2), GRS/GZRS | ||
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS |
O tomto kurzu
V tomto kurzu se naučíte provádět základní operace se službou Azure Files pomocí jazyka C++. Pokud se službou Azure Files začínáte, projděte si koncepty v následujících částech, které vám pomůžou porozumět ukázkám. Tady jsou některé ukázky:
- Vytvoření a odstranění sdílených složek Azure
- Vytváření a odstraňování adresářů
- Nahrání, stažení a odstranění souboru
- Nastavení a výpis metadat souboru
Poznámka:
Vzhledem k tomu, že služba Soubory Azure je možná přístupná přes protokol SMB, je možné psát jednoduché aplikace, které přistupují ke sdílené složce Azure pomocí standardních tříd a funkcí V/V jazyka C++. Tento článek popisuje, jak psát aplikace, které používají sadu Azure Storage C++ SDK, která používá rozhraní File REST API ke komunikaci se soubory Azure Files.
Požadavky
Nastavení
Tato část vás provede přípravou projektu pro práci s klientskou knihovnou azure Blob Storage v12 pro C++.
Instalace balíčků
Příkaz vcpkg install
nainstaluje sadu AZURE Storage Blobs SDK pro C++ a nezbytné závislosti:
vcpkg.exe install azure-storage-files-shares-cpp:x64-windows
Další informace najdete na GitHubu a získejte a sestavte sadu Azure SDK pro C++.
Vytvoření projektu
V sadě Visual Studio vytvořte novou konzolovou aplikaci C++ pro Windows s názvem FilesShareQuickstartV12.
Zkopírování přihlašovacích údajů z webu Azure Portal
Když ukázková aplikace odešle žádost do Služby Azure Storage, musí být autorizovaná. Pokud chcete žádost autorizovat, přidejte do aplikace přihlašovací údaje účtu úložiště jako připojovací řetězec. Pokud chcete zobrazit přihlašovací údaje účtu úložiště, postupujte takto:
Přihlaste se k portálu Azure.
Vyhledejte svůj účet úložiště.
V podokně nabídek účtu úložiště v části Zabezpečení a sítě vyberte Přístupové klíče. Tady můžete zobrazit přístupové klíče účtu a kompletní připojovací řetězec pro každý klíč.
V podokně Přístupové klíče vyberte Zobrazit klíče.
V části klíč1 vyhledejte hodnotu připojovacího řetězce. Výběrem ikony Kopírovat do schránky zkopírujte připojovací řetězec. Hodnotu připojovací řetězec přidáte do proměnné prostředí v další části.
Konfigurace připojovacího řetězce úložiště
Po zkopírování připojovací řetězec ji zapište do nové proměnné prostředí na místním počítači, na kterém běží aplikace. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring>
skutečnými připojovací řetězec.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Po přidání proměnné prostředí ve Windows musíte spustit novou instanci příkazového okna.
Restartování programů
Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset přečíst proměnnou prostředí. Než budete pokračovat, restartujte například vývojové prostředí nebo editor.
Příklady kódu
Tyto ukázkové fragmenty kódu ukazují, jak provádět následující úlohy s klientskou knihovnou sdílené složky Azure pro C++:
- Přidání souborů zahrnutí
- Získání připojovací řetězec
- Vytvoření sdílené složky
- Nahrání souborů do sdílené složky
- Nastavení metadat souboru
- Výpis metadat souboru
- Stažení souborů
- Odstranění souboru
- Odstranění sdílené složky
Přidání souborů zahrnutí
Z adresáře projektu:
- Otevřete soubor řešení FilesShareQuickstartV12.sln v sadě Visual Studio.
- V sadě Visual Studio otevřete zdrojový soubor FilesShareQuickstartV12.cpp .
- Odeberte veškerý kód uvnitř
main
, který byl automaticky vygenerován. - Add
#include
– příkazy
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <azure/storage/files/shares.hpp>
Získání připojovacího řetězce
Následující kód načte připojovací řetězec pro váš účet úložiště z proměnné prostředí vytvořené v části Konfigurace připojovací řetězec úložiště.
Přidejte tento kód do 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
Vytvoření sdílené složky
Vytvoření instance Třídy ShareClient voláním CreateFromConnectionString funkce. Potom zavolejte CreateIfNotExists a vytvořte skutečnou sdílenou složku ve vašem účtu úložiště.
Přidejte tento kód na konec 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();
Nahrání souborů do sdílené složky
Následující fragment kódu:
- Deklaruje řetězec obsahující "Hello Azure!".
- Získá odkaz na Objekt ShareFileClient získáním kořenového ShareDirectoryClient a volání GetFileClient ve sdílené složce ze sekce Vytvořit sdílenou složku.
- Nahraje řetězec do souboru voláním funkce UploadFrom . Tato funkce vytvoří soubor, pokud ještě neexistuje, nebo ho aktualizuje, pokud ano.
Přidejte tento kód na konec 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));
Nastavení metadat souboru
Nastavte vlastnosti metadat souboru voláním funkce ShareFileClient.SetMetadata .
Přidejte tento kód na konec main()
:
Azure::Storage::Metadata fileMetadata = { {"key1", "value1"}, {"key2", "value2"} };
fileClient.SetMetadata(fileMetadata);
Výpis metadat souboru
Získejte vlastnosti metadat pro soubor voláním funkce ShareFileClient.GetProperties . Metadata jsou pod Metadata
polem vráceného Value
. Metadata budou pár klíč-hodnota podobný příkladu v nastavení metadat souboru.
// 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;
}
Stažení souborů
Po načtení vlastností souboru v seznamu metadat souboru nový std::vector<uint8_t>
objekt pomocí vlastností nahraného souboru. Stáhněte dříve vytvořený soubor do nového std::vector<uint8_t>
objektu voláním funkce DownloadTo v základní třídě ShareFileClient . Nakonec zobrazte stažená data souboru.
Přidejte tento kód na konec 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;
Odstranění souboru
Následující kód odstraní objekt blob ze sdílené složky Azure Storage Files voláním funkce ShareFileClient.Delete .
std::cout << "Deleting file: " << fileName << std::endl;
fileClient.DeleteIfExists();
Odstranění sdílené složky
Následující kód vyčistí prostředky vytvořené aplikací odstraněním celé sdílené složky pomocí ShareClient.Odstranit.
Přidejte tento kód na konec main()
:
std::cout << "Deleting files share: " << shareName << std::endl;
shareClient.DeleteIfExists();
Spuštění kódu
Tato aplikace vytvoří kontejner a nahraje textový soubor do služby Azure Blob Storage. Příklad pak vypíše objekty blob v kontejneru, stáhne soubor a zobrazí obsah souboru. Aplikace nakonec odstraní objekt blob a kontejner.
Výstup aplikace je podobný následujícímu příkladu:
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
Další kroky
V tomto rychlém startu jste zjistili, jak nahrát, stáhnout a vypsat soubory pomocí jazyka C++. Dozvěděli jste se také, jak vytvořit a odstranit sdílenou složku Azure Storage.
Pokud chcete zobrazit ukázku služby C++ Blob Storage, pokračujte následujícími postupy: