Amazon : un SDK pour travailler sur AWS avec C++

Par:
fredericmazue

jeu, 03/09/2015 - 15:51

Amazon vient de mettre un SDK à disposition des développeurs désireux de travailler avec C++ sur AWS.  

AWS SDK for C++ est présenté comme fournissant une interface permettant la programmation de bas et haut niveau. Les dépendances à d'autres codes ou librairies C++ sont aussi réduites de possible et le code source est indépendant de la plate-forme de travail. Celle-ci peut être Windows, Linux ou OS X, ainsi que des systèmes mobiles.

Le SDK, souligne encore Amazon, a été conçu tout spécialement à l'intention des développeurs de jeux, mais il conviendra aussi aux tâches systèmes, ainsi que pour tout projet pour lesquelles les performances natives sont importantes.

Le SDK fonctionne avec la librairie standard C++ STL, il utilise et supporte les fonctionnalités de C++11. Il propose une gestion de la mémoire personnalisée, et notamment des API d'authentification et de cryptographie. Pour la construction de projet,s il utilise l'outil CMake.

AWS SDK for C++ peut être téléchargé sur GitHub.

L'exemple de code ci-dessous permet de télécharger un fichier depuis Amazon Simple Storage Service (S3)

Aws::S3::S3Client s3Client;
GetObjectRequest getObjectRequest;
getObjectRequest.SetBucket("sample_bucket");
getObjectRequest.SetKey("sample_key");
getObjectRequest.SetResponseStreamFactory(
    [](){
        return Aws::New(ALLOCATION_TAG, DOWNLOADED_FILENAME, std::ios_base::out | std::ios_base::in | std::ios_base::trunc);
    });
auto getObjectOutcome = s3Client.GetObject(getObjectRequest);

if(getObjectOutcome.IsSuccess())
{
    std::cout << "File downloaded from S3 to location " << DOWNLOADED_FILENAME;
}
else
{
    std::cout << "File download failed from s3 with error " << getObjectOutcome.GetError().GetMessage();
}