Amazon Web Services ブログ

AWS SDK for C++ – 本稼働環境で使用する準備ができました

1 年近くに及ぶ開発者からのフィードバックと貢献により、バージョン 1.0 の AWS SDK for C++ が利用可能になりました。本稼働環境での使用をお勧めします。SDK はセマンティックバージョニングに従っているため、バージョン 1.0 から、任意のバージョン 1.x の C++ SDK を信頼することができ、アップグレードによってビルドが破損することはありません。

SDK のデベロッパープレビューについて寄せられたフィードバックに基づいて、いくつかの重要な変更や機能強化を行いました。

  • セマンティックバージョニング – SDK はセマンティックバージョニングに従っています。バージョン 1.0 から、1.x シリーズ内のアップグレードによってビルドが破損することはありません。
  • Transfer Manager – 元の TransferClient は機能が強化された新しい TransferManager インターフェイスへと進化しました。
  • ビルドプロセス – CMake ビルドチェーンは、プラットフォームのデフォルト値を簡単に上書きできるよう機能が強化されました。
  • 簡略化された設定 – 実行時に SDK 全体の設定オプションを簡単に設定できるようになりました。
  • 暗号化 – SDK には、サポートされるすべてのプラットフォームで対称暗号化のサポートが含まれるようになりました。
  • NuGet – 現在、SDK は NuGet を通じて入手できます (詳細については、「AWS SDK for C++ Now Available via. NuGet」を参照してください)。
  • Fixes – 1.0 コードベースには数多くのバグ修正とビルドの機能強化が含まれています。

さらに、AWS での C++ の開発をさらに簡単で安全にするための、より高いレベルの API を間もなく公開します。機能が強化された新しい TransferManager API を使用したコードサンプルを次に示します。

#include <aws/core/Aws.h>
#include <aws/s3/S3Client.h>
#include <aws/transfer/TransferManager.h>

static const char* ALLOC_TAG = "main";

int main()
{
    Aws::SDKOptions options;
    Aws::InitAPI(options);

    auto s3Client = Aws::MakeShared<Aws::S3::S3Client>(ALLOC_TAG);
    Aws::Transfer::TransferManagerConfiguration transferConfig;
    transferConfig.s3Client = s3Client;

    transferConfig.transferStatusUpdatedCallback =
       [](const TransferManager*, const TransferHandle& handle)
       { std::cout << "Transfer Status = " << static_cast(handle.GetStatus()) << "\n"; }

    transferConfig.uploadProgressCallback =
        [](const TransferManager*, const TransferHandle& handle)
        { std::cout << "Upload Progress: " << handle.GetBytesTransferred() << " of " << handle.GetBytesTotalSize() << " bytes\n";};

    transferConfig.downloadProgressCallback =
        [](const TransferManager*, const TransferHandle& handle)
        { std::cout << "Download Progress: " << handle.GetBytesTransferred() << " of " << handle.GetBytesTotalSize() << " bytes\n"; };
    
    Aws::Transfer::TransferManager transferManager(transferConfig);
    auto transferHandle = transferManager.UploadFile("/user/aws/giantFile", "aws_cpp_ga", "giantFile", 
                                                     "text/plain", Aws::Map<Aws::String, Aws::String>());
    transferHandle.WaitUntilFinished();
     
    Aws::ShutdownAPI(options);
    return 0;
}

詳細については、AWS SDK for C++ ホームページおよび AWS 開発者ブログ (C++) を参照してください。

引き続きフィードバックをお寄せください
AWS SDK for C++ は本稼働環境で使用する準備ができたため、お客様のご意見やご感想、使用事例、さらにより良くするための方法などをお寄せください。改善点について、お気軽に問題を登録いただくか、プルリクエストを送信してください。

Jeff;