0014-00000063

Updated at:

Problem description

The NoncurrentVersionTransition node in the PutBucketLifecycle request body is missing the required StorageClass child node.

Causes

When you submit a PutBucketLifecycle request, OSS validates the request body XML. If the NoncurrentVersionTransition node does not include a StorageClass child node, OSS cannot determine the target storage class for noncurrent object versions and rejects the request.

Examples

The following request body is missing <StorageClass> inside NoncurrentVersionTransition:

<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule7</ID>
    <Prefix>xxx</Prefix>
    <Status>Enabled</Status>
    <NoncurrentVersionTransition>
      <NoncurrentDays>200</NoncurrentDays>
      <!-- StorageClass is missing here -->
    </NoncurrentVersionTransition>
  </Rule>
</LifecycleConfiguration>

Solutions

Add <StorageClass> to the NoncurrentVersionTransition node. This element specifies the storage class that noncurrent versions transition to, such as IA (Infrequent Access).

The corrected request body:

<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule7</ID>
    <Prefix>xxx</Prefix>
    <Status>Enabled</Status>
    <NoncurrentVersionTransition>
      <NoncurrentDays>200</NoncurrentDays>
      <StorageClass>IA</StorageClass>
    </NoncurrentVersionTransition>
  </Rule>
</LifecycleConfiguration>

To avoid constructing request bodies manually, configure lifecycle rules in the OSS console instead.

References