在 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/