Speicheraufbewahrung und Bereinigung
Plant vollständige Speicherbereinigung und trennt logisches Löschen, physische Entfernung, erhaltene Versionen und geschützte Datensätze.
retention-storage-cleanup
Teammitglieder mit diesem Skill
Wann ist der Skill hilfreich?
Nutze ihn bei verlassenen Uploads, verwaisten Ableitungen oder prüfbaren Löschplänen unter bestehenden Aufbewahrungsregeln.
Wobei hilft er dir?
- Inventarisiert Originale, Ableitungen, Zwischenkopien und unfertige Uploads.
- Prüft Schonfristen und aktive Referenzen vor endgültiger Entfernung.
- Berücksichtigt Versionen, Aufbewahrungssperren und Kontingentkorrekturen ehrlich.
Das könntest du fragen
Erstelle eine Bereinigungsvorschau ohne aktive Uploads und aufbewahrungspflichtige Datensätze. Nimm einen frischen Upload und eine alte unreferenzierte Vorschau in die Vorschau auf. Erkläre Alter, Verweise und Aufbewahrungssperren vor Löschfreigabe.
Ausführliche Dokumentation
Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.
Weniger anzeigen
Retention & Storage Cleanup
Without deliberate lifecycle cleanup, storage costs grow unchecked from abandoned multipart uploads, failed transcode artifacts, orphaned thumbnails and deleted records whose underlying blobs were left behind. Equally critical: an overly aggressive cleanup script can delete in-flight uploads or violate backup/legal retention rules.
1. Cascading Deletion Completeness
When a user or workspace deletes a file (or an entire project/account is deleted), track every artifact that must be cleaned up:
- Primary storage object (
storage_key). - All derived variants (
file_derivatives: thumbnails, responsive sizes, PDF previews, audio waveforms, and entire HLS/DASH segment prefixes). - Quarantine / staging copies (if deletion happens before promotion).
- Active multipart upload sessions (
AbortMultipartUploadso unmerged parts are freed). - Share links & CDN cache: invalidate
file_sharesimmediately and purge edge cache keys if the asset was cached on a CDN. - Quota accounting: decrement
used_bytes(or releasereserved_bytes) atomically once deletion is committed.
2. Two-Phase Deletion & Grace Windows
Never delete storage bytes synchronously inside a user-facing DELETE database transaction (if the DB rolls back after DeleteObject, data is permanently lost):
- Phase 1 — Logical Soft-Delete:
- Set
deleted_at = NOW(),purge_after = NOW() + grace_period(e.g., immediate for temporary drafts, or 7–30 days for recoverable trash / accidental-deletion recovery). - Revoke all read/download/share access immediately when
deleted_at IS NOT NULL.
- Set
- Phase 2 — Asynchronous Physical Purge:
- A background worker selects rows where
status = 'soft_deleted' AND purge_after <= NOW()(and no legal/compliance hold applies), deletes all derivative and primary storage objects, and marksstatus = 'purged',purged_at = NOW().
- A background worker selects rows where
3. Safe Orphan Sweeping (Avoiding In-Flight Deletion)
When sweeping for orphaned files or abandoned uploads:
- Enforce a generous minimum age threshold (Safety Grace Window):
- Never delete an unreferenced storage object or
'uploading'session that is younger than the maximum possible upload/processing duration (e.g., only sweep'uploading'sessions whereexpires_at < NOW() - INTERVAL '2 hours', and only sweep unreferenced storage blobs older than24–72 hours).
- Never delete an unreferenced storage object or
- Verify zero active references before deleting:
- If content-addressed storage or deduplication is used, verify that zero active
filesrows reference the blob hash (with a lock or reference counter) before deleting the underlying object.
- If content-addressed storage or deduplication is used, verify that zero active
- Dry-run & batch rate limiting:
- Build mass-cleanup jobs with a
--dry-runmode that logs candidate count and total bytes first, and process deletions in bounded batches (DeleteObjectsup to 1,000 keys) with audit logging.
- Build mass-cleanup jobs with a
4. Object Versioning, Backups & Honest Deletion Claims
- Check whether S3/Blob Object Versioning, Object Lock (WORM) or automated snapshot backups are enabled on the bucket.
- In a versioned bucket, a standard
DeleteObjectonly inserts a Delete Marker while keeping prior versions billable and recoverable unless aVersionIddelete or lifecycle expiration rule is configured. Document the actual retention behavior honestly.
Enthaltene Dateien 1
SKILL.md
