如何检查 Aws::Transfer::Transfermanager 下载是否成功?

How to check if a download with Aws::Transfer::Transfermanager was a success?

我从 AWS S3 下载并在方法结束时我想 return 它成功但遗憾的是我不知道如何。

我试着用我得到的 TransferHandle 来做这个,但似乎没有这个选项。

bool downloadObject(const std::shared_ptr<Aws::S3::S3Client> & client, const Aws::String &key_name)
{
const auto executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>("Downloading-File", 4);
auto transferInitCallback = [&](const Aws::Transfer::TransferManager*, const std::shared_ptr<const Aws::Transfer::TransferHandle>& handle) {};

Aws::Transfer::TransferManagerConfiguration transferConfig(executor.get());
transferConfig.s3Client = client;
transferConfig.transferInitiatedCallback = transferInitCallback;

const auto transmanager = Aws::Transfer::TransferManager::Create(transferConfig);
const auto handle = transmanager->DownloadFile("bucketName", key_name, "C:/Development/test.gz");

handle->WaitUntilFinished();    // block calling thread until download complete

//if download == success -> return true;
}

您可以使用GetStatus来检查是否成功,例如:

return handle->GetStatus() == Aws::Transfer::TransferStatus::COMPLETED