c++ - Amazon AWS CPP SDK 获取 S3 Bucket 下载进度

标签 c++ linux amazon-web-services

在 Linux 上,我使用 AWS CPP SDK 使用以下代码从 S3 存储桶下载一个 23 MB 的文件。它工作得很好,但我也想获得下载进度。我在谷歌上找不到任何例子。我想我需要设置“SetDataReceivedEventHandler) 回调。任何人都可以告诉我该函数应该是什么样子/我如何实现它并注册它?谢谢。

    GetObjectRequest getObjectRequest;
    getObjectRequest.SetBucket(bucket.c_str());
    getObjectRequest.SetKey(keyName.c_str());
    getObjectRequest.SetResponseStreamFactory([&destination](){
     return Aws::New<Aws::FStream>(
     "s3file", destination, std::ios_base::out); });

    // getObjectRequest.SetDataReceivedEventHandler() <--- How do I use this?

    GetObjectOutcome getObjectOutcome = SessionClient->GetObject(getObjectRequest);
    if(getObjectOutcome.IsSuccess())
    {
        std::cout << "<AWS DOWNLOAD> Get FW success!" << std::endl;
    }
    else
    {
        std::cout << "<AWS DOWNLOAD> Get FW failed: " << getObjectOutcome.GetError().GetMessage() << std::endl;
        exit(1);
    }

最佳答案

您是否尝试过使用 TransferManager ?有下载progress callbacks . Full doc link

关于c++ - Amazon AWS CPP SDK 获取 S3 Bucket 下载进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984991/

相关文章:

c++ - 使用 IARG_MEMORYREAD_EA

linux - 我如何在 Linux 中更新 npm?

linux - 如何在 git 包上运行 ./configure 脚本?

python - Boto:从配置中动态获取 Python 代码中的 aws_access_key_id 和 aws_secret_access_key?

c++ - Win32 API 中 PathAppend 和 PathCombine 的区别

c++ - OpenCV中图像矩阵的子区域

php - Mysql连接VLAN外的外部/远程服务器

node.js - 具有 23G 可用磁盘空间的 EC2 卷上出现 ENOSPC 错误

tomcat - ELB后面的tomcat如何重定向到https

c++ - 连接到正在运行的 IE 实例 C++