lifecyclerule create

Prev Next

This command creates an S3 lifecycle rule.

Usage

lifecyclerule create --name NAME
                     --view-id ID
                     --enable|--disable
                    [--prefix PREFIX]
                    [--min-size SIZE]
                    [--max-size SIZE]
                    [--expiration-days DAYS]
                    [--enable-expired-obj-delete-marker|--disable-expired-obj-delete-marker]
                    [--noncurrent-days DAYS]
                    [--newer-noncurrent-versions VERSIONS]
                    [--abort-mpu-days-after-initiation DAYS]
                    [--object-age-attr MODIFICATION_TIME|ACCESS_TIME|CREATION_TIME]

Required Parameters

--name NAME

Specifies a name for the rule.

--view-id ID

Specifies the ID of the view to which the rule applies.

Options

--enable

Enables the rule immediately upon its creation.

--disable

Specify this option to create a rule without enabling it immediately

--prefix PREFIX

Defines a prefix to limit the object scope by object prefix.

In S3 terms, this is a prefix that may be common to multiple object keys (names). Specifying a prefix defines a scope of objects to which the rule applies. For example, if you specify sales/jan, all objects in the view that have object keys that begin with sales/jan will fall into the scope.  

In terms of file and directory nomenclature, a prefix is a file and/or directory path within the view that can include part of the file or directory name. It can be common to multiple items in order to catch them all within the scope.  

For example, if you want to specify all files under a directory called sales that resides under the view, you can specify salessales/. This prefix will exclude the directory itself from the scope. If you were to specify sales that would include the directory as well as all the files under the directory. If you were to specify sales/j that would include all files under the directory with names that begin with 'j'.

For example: --prefix logs/

--min-size SIZE

Specifies a minimum object size to limit the scope by size.

Specify SIZE as an integer followed by MB, GB, TB, etc.

For example: --min-size 2GB

--max-size SIZE

Specifies a maximum object size to limit the scope by size.

Specify SIZE as an integer followed by MB, GB, TB, etc.

For example: --max-size 1TB

--expiration-days DAYS

Specifies a number of days after objects are created that they expire.

In a non versioned bucket view, expiration means that the object is permanently removed.

In a versioned bucket view, where the objects are versioned:

  • if the current version is not a delete marker, a delete marker is created and that becomes the current version. The existing current version is retained as a non current version. When the delete marker reaches this same number of days, it is deleted.

  • If there are one or more object versions and the delete marker is the current version, no action is taken.

  • If the current object version is the only object version and it is also a delete marker, it is removed. That is, all object versions were deleted and there is only a delete marker remaining. This is called an expired object delete marker and it is removed.

--enable-expired-obj-delete-marker

Relevant only for versioned buckets.

Enables deletion of expired object delete markers when they become expired object delete markers.

An expired object delete marker is an object version that is the only version of an object and is also a delete marker.

This parameter is mutually exclusive with --expiration-days DAYS, which deletes expired object delete markers when they satisfy the specified age criteria. If you want to expire objects using --expiration-days DAYS and also clean up expired object delete markers as soon as they are created as such, create two separate rules.

--disable-expired-obj-delete-marker

Relevant only for versioned buckets.

Disables deletion of expired object delete markers when they become expired object delete markers.

--noncurrent-days DAYS

Relevant only for versioned buckets.

If provided, noncurrent versions of objects are deleted after the specified number of days, provided they are not the newest noncurrent versions up to the number set to be retained, if that number is provided with --newer-noncurrent-versions VERSIONS.

--newer-noncurrent-versions VERSIONS

Relevant only for versioned buckets.

Use this parameter to specify a number of non-current versions of objects to retain. The newest non current versions up to this number will not expire even if they exceed --noncurrent-days .

--abort-mpu-days-after-initiation DAYS

Specifies to remove incomplete multipart uploads, which are not removed through --expiration-days. The value is the number of days after multipart uploads are started when they should be aborted and removed if they are incomplete.

--object-age-attr MODIFICATION_TIME|ACCESS_TIME|CREATION_TIME

Determines which timestamp to use as the time from which to count expiration days, if --expiration-days is set.  

Possible values:

  • MODIFICATION_TIME (default). The time the object was last modified.

  • ACCESS_TIME. The time the object content was last accessed.

  • CREATION_TIME. The time the object was created (or if different, the time the object's metadata was last modified.)

Example

vcli: admin> lifecyclerule create --name expirelogsrule --view-id 11 --enable --prefix /logs --expiration-days 60