Amazon示例transfermanager代码无法编译

时间:2019-08-16 07:35:40

标签: c++ awss3transfermanager

我无法找到AWS C ++ SDK传输管理器的工作示例。 AWS提供的示例无法在Ubuntu 18.04上使用GCC 7.0.4进行编译。它有很多错误,第一个错误是TransferManagerConfiguration没有默认构造函数。

我实际上正在尝试寻找某种方法来使用C ++ SDK获得大于2GB的对象。我可以使用其他语言。我正在尝试让转帐经理工作,看看是否可以解决它。但是我无法使Amazon提供的示例代码可以在Windows或Linux上构建。该示例来自其“准备生产的博客文章。

#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;
}

我希望它生成并上传文件。

1 个答案:

答案 0 :(得分:3)

这是我的首选模板。真令人讨厌Aws忘记更新其教程。

docker system prune -a