Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Microsoft Azure Storage Client Library for C++

License

NotificationsYou must be signed in to change notification settings

Azure/azure-storage-cpp

For more details on the retirement and alternatives to using this project, visitRetirement notice: The legacy Azure Storage C++ client libraries will be retired on 29 March 2025.

The Azure Storage Client Library for C++ allows you to build applications against Microsoft Azure Storage. For an overview of Azure Storage, seeIntroduction to Microsoft Azure Storage.

Features

  • Tables
    • Create/Delete Tables
    • Query/Create/Read/Update/Delete Entities
  • Blobs
    • Create/Read/Update/Delete Blobs
  • Queues
    • Create/Delete Queues
    • Insert/Peek Queue Messages
    • Advanced Queue Operations
  • Files
    • Create/Delete/Resize Shares
    • Create/Delete Directories
    • Create/Read/Update/Delete Files

Getting started

For the best development experience, we recommend that developers use thevcpkg as the cross-platform library manager.

Requirements

To call Azure services, you must first have an Azure subscription. Sign up for afree trial or use yourMSDN subscriber benefits.

Need Help?

Be sure to check out theAzure Storage Forum on MSDN if you need help, or useStackOverflow.

Collaborate & Contribute

We gladly accept community contributions.

For general suggestions about Azure, use ourAzure feedback forum.

Download & Install

Build from Source

To build with source code, there are three ways to install dependencies:

  • Via vcpkg

    You can manage the dependencies with vcpkg, and use Visual Studio 2015 update 3 or Visual Studio 2017 for development environment. Simply installing Casablanca via vcpkg will setup everything needed.

    C:\src\vcpkg> .\vcpkg install cpprestsdk

    If you want to build and run test code, you can install UnitTest++ via vcpkg:

    C:\src\vcpkg> .\vcpkg install unittest-cpp
  • Via NuGet

    Because Casablanca does not release NuGet packages anywhere anymore, Starting from 5.1.0, this repository cannot be built with pre-built Casablanca NuGet packages. However, you can export your own version of Casablanca NuGet packages to install dependencies of this project:

    C:\src\vcpkg> .\vcpkg install cpprestsdkC:\src\vcpkg> .\vcpkg export --nuget cpprestsdk --nuget-id=Casablanca --nuget-version=2.10.18
  • Manage dependencies by yourself

    It is not recommended to manage dependencies by yourself. However, you can still build Casablanca by yourself by followingthese instructions and specify the include directories and link binaries.

To create a local clone of the source for the Azure Storage Client Library for C++ via git, type:

git clone https://github.com/Azure/azure-storage-cpp.gitcd azure-storage-cpp

FollowGetting Started on Linux orGetting Started on macOS to build on these two platforms.

To build on Windows, directly open the solution file with Visual Studio in project root directory.

Visual Studio Version

Starting from version 6.1.0, Azure Storage Client Library for C++ supports Visual Studio 2015 and Visual Studio 2017. In case you have the need to use Visual Studio 2013, please getversion 6.0.0, to use Visual Studio 2012, please getversion 2.0.0.

Via NuGet

To install the binaries for the Azure Storage Client Library for C++, you can export a NuGet package with vcpkg and put it into your local NuGet feed. For more information about how to export a NuGet package, please seeBinary Export.

Normally, exporting NuGet package is done with the following command:

C:\src\vcpkg> .\vcpkg export --nuget azure-storage-cpp --nuget-id=Microsoft.Azure.Storage.CPP --nuget-version=7.1.0

Via vcpkg

To install the Azure Storage Client Library for C++ through vcpkg, you need vcpkg installed first. Please follow the instructions(https://github.com/Microsoft/vcpkg#quick-start) to install vcpkg.

Install package with:

C:\src\vcpkg> .\vcpkg install azure-storage-cpp

Dependencies

C++ REST SDK

The Azure Storage Client Library for C++ depends on the C++ REST SDK (codename "Casablanca") It can be installed through vcpkg (vcpkg install cpprestsdk) or downloaded directly fromGitHub.

The validated Casablanca version for each major or recent release on different platforms can be found in the following chart:

azure-storage-cpp's versionCasablanca version for WindowsCasablanca version for Linux
1.0.02.4.02.4.0
2.0.02.4.02.4.0
3.0.02.9.12.9.1
4.0.02.9.12.9.1
5.0.02.9.12.9.1
5.0.12.9.12.9.1
5.1.02.10.62.10.3
5.1.12.10.62.10.3
5.2.02.10.62.10.3
6.0.02.10.102.10.10
6.1.02.10.132.10.13
7.0.02.10.142.10.14
7.1.02.10.142.10.14
7.2.02.10.142.10.14
7.3.02.10.152.10.15
7.3.12.10.152.10.15
7.4.02.10.162.10.16
7.5.02.10.182.10.18

Code Samples

To get started with the coding, please visit the following articles:

To accomplish specific tasks, please find the code samples atsamples folder.

Getting Started on Linux

Getting Started on Ubuntu

As mentioned above, the Azure Storage Client Library for C++ depends on Casablanca. Followthese instructions to compile it.

Once this is complete, then:

  • Clone the project using git:
git clone https://github.com/Azure/azure-storage-cpp.git

The project is cloned to a folder calledazure-storage-cpp. Always use the master branch, which contains the latest release.

  • Install additional dependencies:
sudo apt-get install libxml2-dev uuid-dev
  • Build the SDK for Release:
cd azure-storage-cpp/Microsoft.WindowsAzure.Storagemkdir build.releasecd build.releaseCASABLANCA_DIR=<path to Casablanca> CXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Releasemake

In the above command, replace<path to Casablanca> to point to your local installation of Casablanca. For example, if the filelibcpprest.so exists at location~/Github/Casablanca/cpprestsdk/Release/build.release/Binaries/libcpprest.so, then yourcmake command should be:

CASABLANCA_DIR=~/Github/Casablanca/cpprestsdk CXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release

The library is generated underazure-storage-cpp/Microsoft.WindowsAzure.Storage/build.release/Binaries/.

To build and run unit tests:

  • Install UnitTest++ library:
sudo apt-get install libunittest++-dev
  • Build the test code:
CASABLANCA_DIR=<path to Casablanca> CXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ONmake
  • Run unit tests
cd Binariesvi test_configurations.json# modify test config file to include your storage account credentials./azurestoragetest

To build sample code:

vi ../samples/SamplesCommon/samples_common.h# modify connection string to include your storage account credentialsCASABLANCA_DIR=<path to Casablanca> CXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=ONmake

To run the samples:

cd Binaries./azurestoragesample

Please note the current build script is only tested on Ubuntu 16.04. Please update the script accordingly for other distributions.

Please note that starting from 2.10.0, Casablanca requires a minimum version of CMake v3.1, so the default CMake on Ubuntu 14.04 cannot support Casablanca build. User can upgrade CMake by themselves to build Casablanca. If default CMake (2.8) for Ubuntu 14.04 must be used, 5.0.1 with Casablanca version v2.9.1 is recommended.

Getting Started on SLES12

Please note the following build script is only tested on SLES12 SP3. The script may need to be updated accordingly for other distributions.

Before building the Azure Storage Client Library on C++, some prerequisites need to be installed first:

  • Install prerequisites:
sudo zypper install git gcc-c++ boost-devel cmake libopenssl-devel libxml2-devel libuuid-devel

The Azure Storage Client Library for C++ depends on Casablanca, following are instructions to build and install Casablanca:

  • Clone the project using git:
git clone https://github.com/Microsoft/cpprestsdk.git
  • Checkout the version on which Azure Storage Client Library for C++ depends:
git checkout tags/v2.10.18 -b v2.10.18
  • Build the project in Release mode
cd cpprestsdk/Releasegit submodule update --initmkdir build.releasecd build.releaseCXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release -DWERROR=OFF -DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFFsudo make install

To build the Azure Storage Client Library for C++ project:

  • Clone the project using git:
git clone https://github.com/Azure/azure-storage-cpp.git

The project is cloned to a folder calledazure-storage-cpp. Always use the master branch, which contains the latest release.

  • Build the SDK in Release mode:
cd azure-storage-cpp/Microsoft.WindowsAzure.Storagemkdir build.releasecd build.releaseCXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Releasemake

The library is generated underazure-storage-cpp/Microsoft.WindowsAzure.Storage/build.release/Binaries/.

The Azure Storage Client Library for C++ project depends on Unitest++ for unit test:

To build and install Unitest++:

  • Clone the project using git:
git clone https://github.com/unittest-cpp/unittest-cpp.git
  • Build and install the project:
cd unittest-cpp/builds/CXX=g++-5.1 cmake ..sudo make install

Build and run unit test against Azure Storage Client Library for C++:

  • Build the test code:
CXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ONmake
  • Run unit tests
cd Binariesvi test_configurations.json# modify test config file to include your storage account credentials./azurestoragetest

To build sample code:

vi ../samples/SamplesCommon/samples_common.h# modify connection string to include your storage account credentialsCXX=g++-5.1 cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=ONmake

To run the samples:

cd Binaries./azurestoragesample

Getting Started on CentOS 6/7

Please note the following build script is only tested on CentOS 6.10 and 7.6. The script may need to be updated accordingly for other distributions.

Before building the Azure Storage Client Library on C++, some prerequisites need to be installed first:

  • Install prerequisites:
sudo yum install epel-release centos-release-sclsudo yum install git cmake3 make openssl-devel libxml2-devel libuuid-devel
  • Install and enable to use gcc-c++. Note thatdevtoolset-4 may be not available on some platforms, you can choose to install whichever newer than that, likedevtoolset-8.
sudo yum install devtoolset-4-gcc-c++sclenable devtoolset-4 bash
  • Download and install boost
wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gztar xvf boost_1_68_0.tar.gzcd boost_1_68_0./bootstrap.shsudo ./b2 install

The Azure Storage Client Library for C++ depends on Casablanca, following are instructions to build and install Casablanca:

  • Clone the project using git:
git clone https://github.com/Microsoft/cpprestsdk.git
  • Checkout the version on which Azure Storage Client Library for C++ depends:
cd cpprestsdkgit checkout tags/v2.10.18 -b v2.10.18
  • Build the project in Release mode
git submodule update --initmkdir Release/build.releasecd Release/build.releasecmake3 .. -DCMAKE_BUILD_TYPE=Release -DWERROR=OFF -DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFFsudo make install

To build the Azure Storage Client Library for C++ project:

  • Clone the project using git:
git clone https://github.com/Azure/azure-storage-cpp.git

The project is cloned to a folder calledazure-storage-cpp. Always use the master branch, which contains the latest release.

  • Build the SDK in Release mode:
cd azure-storage-cpp/Microsoft.WindowsAzure.Storagemkdir build.releasecd build.releasecmake3 .. -DCMAKE_BUILD_TYPE=Releasemake

The library is generated underazure-storage-cpp/Microsoft.WindowsAzure.Storage/build.release/Binaries/.

The Azure Storage Client Library for C++ project depends on Unitest++ for unit test:

To build and install Unitest++:

  • Clone the project using git:
git clone https://github.com/unittest-cpp/unittest-cpp.git
  • Build and install the project:
cd unittest-cpp/builds/cmake3 ..sudo make install

Build and run unit test against Azure Storage Client Library for C++:

  • Build the test code:
cmake3 .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ONmake
  • Run unit tests
cd Binariesvi test_configurations.json# modify test config file to include your storage account credentials./azurestoragetest
  • To build sample code:
vi ../samples/SamplesCommon/samples_common.h# modify connection string to include your storage account credentialscmake3 .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=ONmake
  • To run the samples:
cd Binaries./azurestoragesample

Getting Started on macOS

Note that macOS is not officially supported yet, but it has been seen to work, YMMV. This build has been tested to work when the dependencies are installed via homebrew, YMMV if using FINK or MacPorts

Install dependecies with homebrew:

brew install libxml2 ossp-uuid openssl

As mentioned above, the Azure Storage Client Library for C++ depends on Casablanca.If you are using homebrew you can install it from there:

brew install cpprestsdk

Otherwise, you may need to build it. Followthese instructions to compile it.

Once this is complete, then:

  • Clone the project using git:
git clone https://github.com/Azure/azure-storage-cpp.git

The project is cloned to a folder calledazure-storage-cpp. Always use the master branch, which contains the latest release.

Some notes about building:

  • If you're using homebrew, there seems to be an issue with the pkg-config files, which means that, by default, a -L flag to tell the linker where libintl lives is left out. We've accounted for this in our CMAKE file, by looking in the usual directory that homebrew puts those libs. If you are not using homebrew, you will get an error stating that you need to tell us where those libs live.

  • Similarly, for openssl, you don't want to use the version that comes with macOS, it is old. We've accounted for this in the CMAKE script by setting the search paths to where homebrew puts openssl, so if you're not using homebrew you'll need to tell us where a more recent version of openssl lives.

  • Build the SDK for Release if you are using hombrew:

cd azure-storage-cpp/Microsoft.WIndowsAzure.Storagemkdir build.releasecd build.releasecmake .. -DCMAKE_BUILD_TYPE=Releasemake
  • OR, Build the SDK for Release if you are not using homebrew
cd azure-storage-cpp/Microsoft.WindowsAzure.Storagemkdir build.releasecd build.releaseCASABLANCA_DIR=<path to casablanca> cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=<path to openssl> -DGETTEXT_LIB_DIR=<path to gettext lib dir>make

In the above command, replace:

  • <path to Casablanca> to point to your local installation of Casablanca. For example, if the filelibcpprest.so exists at location~/Github/Casablanca/cpprestsdk/Release/build.release/Binaries/libcpprest.dylib, then should be~/Github/Casablanca/cpprestsdk
  • <path to openssl> to your local openssl, it is recommended not to use the version that comes with macOS, rather use one from Homebrew or the like. This should be the path that contains thelib andinclude directories
  • <path to gettext lib dir> is the directory which containslibintl.dylib

For example you might use:

CASABLANCA_DIR=~/Github/Casablanca/cpprestsdk cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DGETTEXT_LIB_DIR=/usr/local/opt/gettext/lib

The library is generated underazure-storage-cpp/Microsoft.WindowsAzure.Storage/build.release/Binaries/.

To build and run unit tests:

  • Install UnitTest++ library:
brew install unittest-cpp
  • Build the test code:
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ONmake
  • Run unit tests
cd Binariesvi test_configurations.json# modify test config file to include your storage account credentials./azurestoragetest

Learn More


[8]ページ先頭

©2009-2025 Movatter.jp