c++ - 如何检查使用 Aws::Transfer::Transfermanager 下载是否成功?

标签 c++ amazon-s3 aws-sdk

我从 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;
}

最佳答案

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

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

关于c++ - 如何检查使用 Aws::Transfer::Transfermanager 下载是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54255321/

相关文章:

c++ - 类方法访问它的数据成员

ruby-on-rails - 亚马逊S3 : how to combine all images into a video?

python - 使用pyspark从s3位置读取 Parquet 文件的文件夹到pyspark数据框

c# - 等待 EC2 实例重启

java - 无法使用 java 从 Amazon S3 中删除对象?

c++ - decltype(auto) 有哪些用途?

c++ - 以非多态方式调用虚函数的成本是多少?

c++ - 在main中查找变量地址?

java - aws s3 cp > 如何在 aws Java SDK 中实现带有分段复制的 cp 命令

.net - 如何在 C# 中接收 AWS SNS 通知?