in sdk/src/model/SetBucketLifecycleRequest.cc [111:142]
int SetBucketLifecycleRequest::validate() const
{
int ret;
if ((ret = OssBucketRequest::validate()) != 0) {
return ret;
}
if (lifecycleRules_.size() > LifecycleRuleLimit) {
return ARG_ERROR_LIFECYCLE_RULE_LIMIT;
}
if (lifecycleRules_.empty()) {
return ARG_ERROR_LIFECYCLE_RULE_EMPTY;
}
for (auto const &rule : lifecycleRules_) {
//no config rule
if (!rule.hasAbortMultipartUpload() &&
!rule.hasExpiration() &&
!rule.hasTransitionList() &&
!rule.hasNoncurrentVersionExpiration() &&
!rule.hasNoncurrentVersionTransitionList()) {
return ARG_ERROR_LIFECYCLE_RULE_CONFIG_EMPTY;
}
if (rule.Prefix().empty() && lifecycleRules_.size() > 1) {
return ARG_ERROR_LIFECYCLE_RULE_ONLY_ONE_FOR_BUCKET;
}
}
return 0;
}