std::unique_ptr S3FileManager::getInputStream()

in fbpcf/io/S3FileManager.cpp [22:35]


std::unique_ptr<IInputStream> S3FileManager::getInputStream(
    const std::string& fileName) {
  const auto& ref = fbpcf::aws::uriToObjectReference(fileName);
  Aws::S3::Model::GetObjectRequest request;
  request.SetBucket(ref.bucket);
  request.SetKey(ref.key);

  auto outcome = s3Client_->GetObject(request);
  if (!outcome.IsSuccess()) {
    throw AwsException{outcome.GetError().GetMessage()};
  }

  return std::make_unique<S3InputStream>(outcome.GetResultWithOwnership());
}