Skip to main content

CLI to get the size of your cloud buckets

Project description

shopvac

Get prefix sizes from cloud storage buckets (S3 / GCS) for cleanups and data audits. Supports flat (top-level only) and tree modes that descend N prefix levels.

Install

uv tool install git+https://github.com/carbonplan/shopvac

Usage

Single bucket:

shopvac --bucket-url s3://my-bucket --min-size-gb 5

Multiple buckets from a file (one URL per line, # lines ignored):

shopvac --bucket-file buckets.txt --min-size-gb 1

GCS bucket:

shopvac --bucket-url gs://my-gcs-bucket --min-size-gb 1

Send results to Slack:

shopvac --bucket-url s3://my-bucket --send-slack --slack-webhook-url "https://hooks.slack.com/..."

Rich table output:

shopvac --bucket-url s3://my-bucket --rich-table

Tree mode (descend 3 prefix levels, show subtrees ≥ 1 GB):

shopvac --bucket-url s3://my-bucket --depth 3 --min-size-gb 1 --rich-table

Options

Flag Default Description
-b, --bucket-url Bucket URL(s), repeatable
-B, --bucket-file File with one bucket URL per line
-d, --depth 1 Prefix levels to descend; 1 = flat, >1 = tree
--min-size-gb 10.0 Exclude prefixes smaller than this (applies at every depth)
--rich-table off Display as rich table instead of plain text
--send-slack off Post results to Slack
--slack-webhook-url Slack incoming webhook URL
--timeout-per-prefix 3600 Seconds before a prefix scan times out
--fail-fast off Stop on first error instead of continuing
--max-concurrent-buckets 5 Concurrent bucket scans

AWS options

Credentials follow the standard AWS credential chain (env vars, ~/.aws/credentials, IAM role). Override with:

Flag Description
--aws-profile Profile name from ~/.aws/credentials
--aws-region Override region
--aws-access-key-id Explicit key ID
--aws-secret-access-key Explicit secret
--aws-session-token Session token for temporary credentials
--skip-signature Skip signing (public buckets)

GCS options

Flag Description
--gcp-service-account-path Path to service account JSON
--gcp-project-id GCP project ID

Application Default Credentials are used when no flags are provided.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shopvac-0.0.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shopvac-0.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file shopvac-0.0.1.tar.gz.

File metadata

  • Download URL: shopvac-0.0.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for shopvac-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4a86804f042da04c3c762ebae6b0c8e5cbcd238fe97de5b7c9437474a6f289ec
MD5 e4c5ace6e930c3f1c99489ede67a8341
BLAKE2b-256 63b7a44e5d6ceb48e1724a35b51f8088971144e485049c1dd8d5e6576629ff43

See more details on using hashes here.

File details

Details for the file shopvac-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: shopvac-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for shopvac-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a09ad10984c55d2ecf4aeb4b5f5afbd57c4a689667bafcfb9faf9dddceef6e82
MD5 86d25739455631006d318d50f92d3faa
BLAKE2b-256 bef6e5437d5275fc1f90edd1fc6c8f2c89199308816c4dae299811317d97aff1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page