Skip to content
Latchkey

aws s3 rm: Delete Objects from S3 in CI

Remove one or many objects from an S3 bucket or prefix.

aws s3 rm deletes objects from S3. With --recursive it removes everything under a prefix. In CI it is used to clean up old build artifacts, expired preview environments, or temporary upload paths.

Common flags

  • --recursive - delete all objects under a prefix
  • --exclude / --include - filter which objects are deleted
  • --dryrun - list what would be deleted without deleting
  • --quiet - suppress per-object output

Example in CI

Tear down a preview environment prefix.

shell
aws s3 rm s3://${PREVIEW_BUCKET}/pr-${PR_NUMBER} --recursive

Common errors in CI

  • An error occurred (AccessDenied) - IAM policy lacks s3:DeleteObject
  • Unable to locate credentials - OIDC role not configured in the job
  • The specified key does not exist - prefix typo; nothing matches

Key takeaways

  • aws s3 rm deletes objects; --recursive clears an entire prefix.
  • Always test destructive deletes with --dryrun first in CI.
  • AccessDenied means the role is missing s3:DeleteObject.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →