Как проверить, была ли загрузка с Aws :: Transfer :: Transfermanager успешной? - PullRequest
0 голосов
/ 18 января 2019

Я делаю загрузку с AWS S3, и в конце метода я хочу вернуть его, но, к сожалению, я не знаю, как это сделать.

Я пытался сделать это с помощью 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;
}

1 Ответ

0 голосов
/ 18 января 2019

Вы можете использовать GetStatus для проверки на успешность, например ::

return handle->GetStatus() == Aws::Transfer::TransferStatus::COMPLETED 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...