I am trying to put bucket lifecycle configuration on objects in my s3 bucket but I am getting an XML parse error: ERROR: : MalformedXML: Unable to parse ExceptionName: MalformedXML Message: The XML you provided was not well-formed or did not validate against our published schema.
As I am simply utilising SDK functions I'm unsure how the XML format would be incorrect.
Here is the code I am using to make the request:
LifecycleRule LCR;
LCR.SetID("archive immediate rule");
//Set Filter of objects
LifecycleRuleFilter my_filter;
my_filter.SetPrefix("my/videos");
LCR.SetFilter(my_filter);
// Set transition of lifecyclerule
Transition my_transition;
my_transition.SetDays(30);
TransitionStorageClass my_transitionstorageclass=TransitionStorageClass::STANDARD_IA;
my_transition.SetStorageClass(my_transitionstorageclass);
// transition vector
Aws::Vector<Transition> m_transitionvector;
m_transitionvector.push_back(my_transition);
LCR.SetTransitions(m_transitionvector);
// Set status of lifecyclerule
ExpirationStatus My_expiration = ExpirationStatus::Enabled;
LCR.SetStatus(My_expiration);
//Set expiration of lifecyclerule
LifecycleExpiration my_lifecycleexpiration;
my_lifecycleexpiration.SetDays(32);
my_lifecycleexpiration.SetExpiredObjectDeleteMarker(true);
LCR.SetExpiration(my_lifecycleexpiration);
// Abort incomplete upload
AbortIncompleteMultipartUpload my_incmpltupload;
my_incmpltupload.SetDaysAfterInitiation(7);
LCR.WithAbortIncompleteMultipartUpload(my_incmpltupload);
Aws::Vector<LifecycleRule> My_lcr;
My_lcr.push_back(LCR);
Aws::S3::Model::BucketLifecycleConfiguration BLCC;
BLCC.SetRules(My_lcr);
Aws::Client::ClientConfiguration config;
config.region = "us-east-1";
Aws::S3::S3Client client(config);
Aws::S3::Model::PutBucketLifecycleConfigurationRequest request;
request.SetBucket("bucket_name");
request.SetLifecycleConfiguration(BLCC);
auto outcome = client.PutBucketLifecycleConfiguration(request);
Aucun commentaire:
Enregistrer un commentaire