Я пытаюсь разместить конфигурацию жизненного цикла корзины на объектах в моей корзине s3, но получаю сообщение об ошибке: MalformedXML: Unable to parse ExceptionName: MalformedXML Message: The XML you provided was not well-formed or did not validate against our published schema.
Поскольку я использую функции SDK, я не уверен, как формат XML будет быть неверным.
Вот код, который я использую для запроса:
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);