在Linux上,我使用AWS CPP SDK从S3 Bucket中使用以下代码下载23 MB文件。 它工作的很好,但我也想获得下载进度。 我在Google上找不到任何示例。 我想我需要设置“SetDataReceivedEventHandler)callback。任何人都可以告诉我什么样的function应该看起来像/我怎样才能实现它,并注册?谢谢。
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 ? 它有下载进度回调 。 完整的文档链接