| 162 | } |
| 163 | |
| 164 | minifi::utils::optional<GetObjectResult> S3WrapperBase::getObject(const GetObjectRequestParameters& get_object_params, const std::shared_ptr<io::BaseStream>& out_body) { |
| 165 | Aws::S3::Model::GetObjectRequest request; |
| 166 | request.SetBucket(get_object_params.bucket); |
| 167 | request.SetKey(get_object_params.object_key); |
| 168 | if (!get_object_params.version.empty()) { |
| 169 | request.SetVersionId(get_object_params.version); |
| 170 | } |
| 171 | if (get_object_params.requester_pays) { |
| 172 | request.SetRequestPayer(Aws::S3::Model::RequestPayer::requester); |
| 173 | } |
| 174 | auto aws_result = sendGetObjectRequest(request); |
| 175 | if (!aws_result) { |
| 176 | return minifi::utils::nullopt; |
| 177 | } |
| 178 | |
| 179 | GetObjectResult result; |
| 180 | result.setFilePaths(get_object_params.object_key); |
| 181 | result.mime_type = aws_result->GetContentType(); |
| 182 | result.etag = minifi::utils::StringUtils::removeFramingCharacters(aws_result->GetETag(), '"'); |
| 183 | result.expiration = getExpiration(aws_result.value().GetExpiration()); |
| 184 | result.ssealgorithm = getEncryptionString(aws_result->GetServerSideEncryption()); |
| 185 | result.version = aws_result->GetVersionId(); |
| 186 | result.write_size = writeFetchedBody(aws_result->GetBody(), aws_result->GetContentLength(), out_body); |
| 187 | |
| 188 | return result; |
| 189 | } |
| 190 | |
| 191 | } // namespace s3 |
| 192 | } // namespace aws |
no test coverage detected