Amazon AWS CPP SDK 获取 S3 存储桶下载进度

Amazon AWS CPP SDK Get S3 Bucket Download Progress

本文关键字:下载 存储 S3 AWS CPP SDK 获取 Amazon      更新时间:2023-10-16

在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吗?它具有下载进度回调。完整文档链接