# Object expiration

You can schedule Object Storage (swift) objects to expire by setting the `X-Delete-At` or `X-Delete-After` header. Once the object is deleted, swift will no longer serve the object and it will be deleted from the cluster shortly thereafter.

- Set an object to expire at an absolute time (in Unix time). You can get the current Unix time by running `date +'%s'`.

      $ swift post CONTAINER OBJECT_FILENAME -H "X-Delete-At:UNIX_TIME"

  Verify the `X-Delete-At` header has posted to the object:

      $ swift stat CONTAINER OBJECT_FILENAME

- Set an object to expire after a relative amount of time (in seconds):

      $ swift post CONTAINER OBJECT_FILENAME -H "X-Delete-After:SECONDS"

  The `X-Delete-After` header will be converted to `X-Delete-At`. Verify the `X-Delete-At` header has posted to the object:

      $ swift stat CONTAINER OBJECT_FILENAME

  If you no longer want to expire the object, you can remove the `X-Delete-At` header:

      $ swift post CONTAINER OBJECT_FILENAME -H "X-Remove-Delete-At:"

Note

In order for object expiration to work properly, the `swift-object-expirer` daemon will need access to all backend servers in the cluster. The daemon does not need access to the proxy-server or public network.

this page last updated: 2026-08-18 20:34:00

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug