# Find and clean up what your Amazon S3 storage really costs

> Walk your buckets folder by folder to see where the bytes and the money actually sit, then archive, tag, or delete what you no longer need.

- Workflow type: app
- Services: Amazon S3, Slack Bot
- Categories: Engineering, Operations
- Published: 2026-08-14

## What it does

- See every bucket with its total size and file count, then drill in folder by folder to find where the bytes actually sit.
- Each folder level rolls up size, file count, storage tier mix and the oldest and newest change date, so you stop guessing at the bucket level.
- A cold data view lists folders nobody has touched in months alongside an estimated monthly cost, so the cleanup list writes itself.
- Select files or a whole folder to archive to a cheaper tier, tag for review, or delete behind a typed confirmation, see the space you reclaimed, and post a summary to Slack.

## What you'll need

- An AWS account with access to the S3 buckets you want to review
- Permission to read files and to copy, tag and delete them, since the cleanup actions change your storage
- A Slack workspace, only if you want to post summaries to a channel
- A rough idea of storage pricing in your region, though the app ships with editable defaults

## Prompt

Build an app for reviewing and cleaning up what my Amazon S3 storage is actually costing me. It is a browsing and cleanup tool: I open it, drill into my storage, and act on what I find without leaving the screen. Everything reads and writes through Amazon S3, with an option to post a summary to Slack.

The landing view lists my buckets using S3 List Buckets, and for each bucket shows total object count and total size. Compute those by paginating S3 List Objects (V2) across the bucket and summing as you go, 1,000 keys per page following the continuation token, with a visible progress indicator because large buckets take a while. Cache each bucket's scan result together with a scanned-at timestamp, show that timestamp in the UI, and give me a Rescan button per bucket and one for all buckets. Do not rescan automatically on every page load.

Clicking a bucket opens a folder explorer that walks key prefixes one level at a time using S3 List Objects (V2) with prefix set to the current path and delimiter set to a forward slash, so CommonPrefixes become the folders and Contents become the objects sitting directly at that level. For every folder row, roll up the entire subtree beneath it: total size, object count, the storage class mix as a breakdown, and the oldest and newest LastModified date. Breadcrumbs let me climb back up, and I can sort rows by size, object count, or age. The whole point is to see which folders are holding the bytes instead of guessing at the bucket level.

A cold data view lists prefixes where nothing has been modified in more than a configurable number of days, defaulting to 180, ranked by size. Next to each prefix show an estimated monthly storage cost derived from its size and its storage class mix, using a per gigabyte rate table I can edit in settings so it matches my region. Ship sensible defaults for Standard, Standard-Infrequent Access, Intelligent-Tiering, Glacier Instant Retrieval, Glacier Flexible Retrieval, and Deep Archive, and make clear in the UI that the estimate covers storage only, not requests or data transfer.

From any view I can multi select individual objects or select a whole prefix, then act on the selection. Archive rewrites the objects to a cheaper storage class with S3 Copy Object, copying each object onto its own key in the same bucket with the copy source set to that key, the metadata directive set to COPY, and the storage class set to the target tier, which I pick from a dropdown that defaults to Glacier Instant Retrieval. Tag for later review uses S3 Put Object Tagging to write a tag set I configure, defaulting to review=pending-delete, and should warn me that this replaces whatever tags the object already has. Delete uses S3 Delete Multiple Objects in batches of up to 1,000 keys.

Deletion must always be explicit and confirmed, never a single click. Before any delete, show a summary of exactly what is selected, meaning the object count, the total size, and the prefixes involved, and require me to type the bucket name or the prefix to confirm. When a whole prefix is selected, expand it to the real object list first so the count is never a guess. After every action, show the outcome: how many objects succeeded, which ones failed and why, and the reclaimed or shifted size. Skip and flag objects larger than 5 GB when archiving because a single copy call cannot handle them, skip objects already sitting in the target storage class, and surface a note that the cheaper archive tiers bill a minimum storage duration.

Selecting a single object opens a side panel with its full detail from S3 Head Object: exact size, content type, storage class, last modified date, ETag, and any metadata, with the same archive, tag, and delete actions available for that one object.

A Post summary to Slack button sends the current view's findings plus the actions I took in this session to a channel using the Slack Bot Send a Message operation. Let me pick the channel, set a default in settings, and see a preview of the message before it sends. The message should read like a short report: which bucket and folder I was looking at, the largest or coldest prefixes with their size and estimated monthly cost, and a list of what I archived, tagged, or deleted with the reclaimed size.

Persist an action log of every archive, tag, and delete, recording who ran it, when, the bucket and keys affected, the byte total, and the result, and give me a History view I can review and post to Slack later. Settings persist the cold threshold in days, the price table, the default archive tier, the review tag, and the default Slack channel. Everything else is read live from Amazon S3.

## How to customize

- Change how many days of no activity counts as cold, which defaults to 180
- Set which cheaper tier archiving moves files to, and edit the per gigabyte prices behind the cost estimates so they match your region
- Pick the review tag applied to files you want to revisit, and the Slack channel summaries go to

## FAQ

### Does this delete anything on its own?

No. Nothing is ever removed in a single click. You select what you want gone, review a summary showing exactly how many files and how much space it covers, and type a confirmation before anything is deleted.

### Why can't I already see folder sizes in the AWS console?

Amazon S3 has no real folders underneath, just file names that happen to contain slashes, and the console does not add up sizes per folder. This app reads the file list itself and does the rolling up, which is why you can finally see which folder is holding the bytes.

### Will this work on a bucket with millions of files?

Yes. It reads the file list in pages and shows progress while it works, then remembers the result so you can browse without waiting again. The first scan of a very large bucket takes a while, and you can rescan whenever you want fresh numbers.

### How accurate is the monthly cost estimate?

It multiplies each folder's size by the price per gigabyte for the tier its files are stored in, using rates you can edit to match your region. It covers storage itself and not request or data transfer charges, so treat it as a strong guide rather than your final bill.

### Can I undo archiving a file?

Archived files stay exactly where they are and keep their names, they just sit in a cheaper tier, so you can move them back later. Keep in mind the cheapest tiers charge for a minimum storage period, so moving something back very soon after archiving it can cost more than leaving it alone.

Use this prompt in General Input: https://www.generalinput.com/prompts/find-and-clean-up-what-your-amazon-s3-storage-really-costs