2017-05-15 10 views
2

Unter Linux verwende ich das AWS CPP SDK, um eine 23 MB große Datei aus einem S3 Bucket mit dem folgenden Code herunterzuladen. Es funktioniert großartig, aber ich möchte auch den Download-Fortschritt bekommen. Ich kann keine Beispiele auf Google finden. Ich glaube, ich brauche den „SetDataReceivedEventHandler) Rückruf zu setzen. Kann mir jemand sagen, was diese Funktion aussehen sollte/wie kann ich es umsetzen und registrieren? Vielen Dank.Amazon AWS CPP SDK Abrufen von S3 Bucket Download Progress

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); 
    } 
+0

Was hat das mit C zu tun? Das ist definitiv kein gültiger C-Code – UnholySheep

Antwort