Skip to content

Commit ecbb19f

Browse files
committed
add more validation for lifecycle
Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com>
1 parent 138b236 commit ecbb19f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/endpoint/s3/ops/s3_put_bucket_lifecycle.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,14 @@ async function put_bucket_lifecycle(req) {
140140
current_rule.abort_incomplete_multipart_upload = _.omitBy({
141141
days_after_initiation: parse_lifecycle_field(rule.AbortIncompleteMultipartUpload[0].DaysAfterInitiation),
142142
}, _.isUndefined);
143-
reject_empty_field(current_rule.abort_incomplete_multipart_upload);
143+
reject_empty_field(current_rule.abort_incomplete_multipart_upload?.days_after_initiation);
144+
145+
if (current_rule.abort_incomplete_multipart_upload?.days_after_initiation < 1) {
146+
throw new S3Error({
147+
...S3Error.InvalidArgument,
148+
detail: 'when calling the PutBucketLifecycleConfiguration operation: \'DaysAfterInitiation\' for AbortIncompleteMultipartUpload action must be a positive integer',
149+
});
150+
}
144151
}
145152

146153
if (rule.Transition?.length === 1) {
@@ -157,7 +164,7 @@ async function put_bucket_lifecycle(req) {
157164
noncurrent_days: parse_lifecycle_field(rule.NoncurrentVersionExpiration[0].NoncurrentDays),
158165
newer_noncurrent_versions: parse_lifecycle_field(rule.NoncurrentVersionExpiration[0].NewerNoncurrentVersions),
159166
}, _.isUndefined);
160-
reject_empty_field(current_rule.noncurrent_version_expiration);
167+
reject_empty_field(current_rule.noncurrent_version_expiration?.noncurrent_days);
161168
}
162169

163170
if (rule.NoncurrentVersionTransition?.length === 1) {

0 commit comments

Comments
 (0)