MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / putObject

Method putObject

extensions/aws/s3/S3WrapperBase.cpp:102–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100}
101
102minifi::utils::optional<PutObjectResult> S3WrapperBase::putObject(const PutObjectRequestParameters& put_object_params, std::shared_ptr<Aws::IOStream> data_stream) {
103 Aws::S3::Model::PutObjectRequest request;
104 request.SetBucket(put_object_params.bucket);
105 request.SetKey(put_object_params.object_key);
106 request.SetStorageClass(STORAGE_CLASS_MAP.at(put_object_params.storage_class));
107 request.SetServerSideEncryption(SERVER_SIDE_ENCRYPTION_MAP.at(put_object_params.server_side_encryption));
108 request.SetContentType(put_object_params.content_type);
109 request.SetMetadata(put_object_params.user_metadata_map);
110 request.SetBody(data_stream);
111 request.SetGrantFullControl(put_object_params.fullcontrol_user_list);
112 request.SetGrantRead(put_object_params.read_permission_user_list);
113 request.SetGrantReadACP(put_object_params.read_acl_user_list);
114 request.SetGrantWriteACP(put_object_params.write_acl_user_list);
115 setCannedAcl(request, put_object_params.canned_acl);
116
117 auto aws_result = sendPutObjectRequest(request);
118 if (!aws_result) {
119 return minifi::utils::nullopt;
120 }
121
122 PutObjectResult result;
123 // Etags are returned by AWS in quoted form that should be removed
124 result.etag = minifi::utils::StringUtils::removeFramingCharacters(aws_result.value().GetETag(), '"');
125 result.version = aws_result.value().GetVersionId();
126
127 // GetExpiration returns a string pair with a date and a ruleid in 'expiry-date=\"<DATE>\", rule-id=\"<RULEID>\"' format
128 // s3.expiration only needs the date member of this pair
129 result.expiration_time = getExpiration(aws_result.value().GetExpiration()).expiration_time;
130 result.ssealgorithm = getEncryptionString(aws_result.value().GetServerSideEncryption());
131 return result;
132}
133
134bool S3WrapperBase::deleteObject(const std::string& bucket, const std::string& object_key, const std::string& version) {
135 Aws::S3::Model::DeleteObjectRequest request;

Callers 1

processMethod · 0.80

Calls 1

valueMethod · 0.80

Tested by

no test coverage detected