Vývoj pro Azure Files pomocí 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 dozvíte, jak provádět základní operace s Azure Files pomocí jazyka C++. Pokud s Azure Files začínáte, pomůže vám při pochopení ukázek projít si koncepty v následujících částech. Mezi uvedené ukázky patří:
- 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 Azure Files mohou být 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 vstupně-výstupních tříd a funkcí C++. Tento článek popisuje, jak psát aplikace, které používají sadu Azure Storage C++ SDK, která ke komunikaci s Azure Files používá souborové rozhraní REST API.
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 potřebné závislosti:
vcpkg.exe install azure-storage-files-shares-cpp:x64-windows
Další informace najdete na GitHubu, kde můžete získat a sestavit 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 požadavek do Služby Azure Storage, musí být autorizována. Pokud chcete žádost autorizovat, přidejte do aplikace přihlašovací údaje účtu úložiště jako připojovací řetězec. Přihlašovací údaje účtu úložiště zobrazíte takto:
Přihlaste se k webu Azure Portal.
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 si můžete prohlédnout přístupové klíče účtu a úplný připojovací řetězec pro každý klíč.
V podokně Přístupové klíče vyberte Zobrazit klíče.
V části key1 vyhledejte hodnotu Připojovací řetězec . Výběrem ikony Zkopírovat do schránky zkopírujte připojovací řetězec. Hodnotu připojovacího řetězce 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ího řetězce ho zapište do nové proměnné prostředí na místním počítači, na kterém aplikace běží. 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ým připojovacím řetězcem.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Po přidání proměnné prostředí v systému Windows je nutné spustit novou instanci příkazového okna.
Restartujte programy
Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou potřebovat 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 Azure Files Share pro jazyk C++:
- Přidání souborů zahrnutí
- Získání připojovacího řetězce
- 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ý automaticky vygenerovaný kód
main
. - Přidejte
#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ího řetězce ú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řte instanci shareclient třídy voláním funkce CreateFromConnectionString . Pak volejte Metodu CreateIfNotExists a vytvořte ve svém účtu úložiště skutečnou sdílenou složku souborů.
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í text "Hello Azure!".
- Získá odkaz na Objekt ShareFileClient získáním kořenové ShareDirectoryClient a voláním GetFileClient sdílené složky z oddílu 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 neexistuje.
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 souboru voláním funkce ShareFileClient.GetProperties . Metadata se nachází pod polem Metadata
vráceného Value
objektu . Metadata budou párem klíč-hodnota, podobně jako v příkladu v tématu 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 části Vypsat metadata 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 data staženého 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 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, které aplikace vytvořila, 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 Azure Blob Storage. Příklad pak vypíše objekty blob v kontejneru, stáhne soubor a zobrazí obsah souboru. Nakonec aplikace odstraní objekt blob a kontejner.
Výstup aplikace se podobá 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 se naučili nahrávat, stahovat a vypisovat soubory pomocí jazyka C++. Také jste zjistili, jak vytvořit a odstranit sdílenou složku Azure Storage.
Pokud chcete zobrazit ukázku služby Blob Storage v jazyce C++, pokračujte na: