Skip to content

Lifecycle

Object expiry, quotas, and cleanup – via cron and ZFS.

Object expiry

# Delete files older than 90 days
find /srv/putfs/acme-corp/temp/ -type f -mtime +90 -delete

# Cron: daily cleanup
0 3 * * * find /srv/putfs/acme-corp/temp/ -type f -mtime +90 -delete

Quotas

Warning

PutFS has no application-level upload size limit (client_max_body_size 0). Without quotas, an authenticated user can fill the disk. Always configure storage limits.

Per-dataset storage limits via ZFS:

zfs set quota=100G tank/putfs/acme-corp/invoices

PutFS returns 507 Insufficient Storage when the filesystem is full.

Bucket cleanup

# Remove entire dataset
rm -rf /srv/putfs/acme-corp/old-dataset/

# Or via ZFS (instant, no recursive delete)
zfs destroy tank/putfs/acme-corp/old-dataset

Further reading