我把一个文件上传到S3。在请求之后,我就从MonitoringManager得到了一个异常,我不知道自己做错了什么。我们在应用程序中使用多个线程。
异常:断言失败。节目:..。Monitor...ger.cpp 55行表示: s_monitors
uploadFileToS3(...);方法‘upadFileToS3’:
bool result = false;
const Aws::SDKOptions options;
Aws::InitAPI(options);
{
std::shared_ptr<Aws::Utils::Threading::Executor> m_executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>("TransferTests", 4);
Aws::Transfer::TransferManagerConfiguration config(m_executor.get());
config.s3Client = client;
auto transmanager = Aws::Transfer::TransferManager::Create(config);
std::shared_ptr<Aws::Transfer::TransferHandle> handle = transmanager->UploadFile(fileDestination, Aws::String(S3_BUCKET_NAME),
Aws::String(s3key), Aws::String("multipart/form-data"), metadata);
handle->WaitUntilFinished();
result = isAwsActionSuccessful(handle) && boost::filesystem::remove(fileDestination);
}
Aws::ShutdownAPI(options);
return result;发布于 2019-01-28 10:00:49
问题是我的应用程序使用了多个线程,因此API被初始化并多次关闭。当我仅在应用程序中执行API的初始化/关闭一次时,问题就得到了解决。
https://stackoverflow.com/questions/54290073
复制相似问题