Skip to main content

The Developer-First CLI for AWS S3 Management.

Project description

CloudPail Banner

CloudPail

PyPI Version Python 3.8+ License: MIT AWS S3 Code Style: Black

The Developer-First Interface for AWS S3 Management.

CloudPail is a terminal-based utility designed to bridge the gap between the complex, syntax-heavy AWS CLI and the latency-prone AWS Console. It provides a robust Text User Interface (TUI) for managing cloud storage resources with speed, precision, and operational safety.


Project Overview

Managing S3 resources often requires a trade-off between speed and usability. The AWS Console offers visual feedback but suffers from slow load times and context switching. The AWS CLI offers speed but requires memorizing verbose commands and lacks safeguards against user error.

CloudPail resolves this by offering an interactive shell that adheres to the "Append-Only" design philosophy, preserving session context while providing immediate visual feedback for all operations.

Core Capabilities

1. Region-Aware Architecture

Standard Boto3 implementations often default to global endpoints, causing SignatureDoesNotMatch errors when interacting with buckets in specific regions (e.g., eu-north-1). CloudPail automatically detects the bucket's region and routes requests to the correct regional endpoint, ensuring cryptographic signature compliance across all AWS zones.

2. Operational Safety Protocols

  • Verification: Implements mandatory head_object pre-flight checks before deletion to prevent "false positives" on non-existent resources.
  • Recursive Cleanup: Includes logic to detect non-empty buckets and offers a recursive deletion workflow to remove all objects, delete markers, and versions before removing the bucket itself.

3. Session Management

  • Dynamic Profile Switching: Reads directly from ~/.aws/credentials to allow instant context switching between environments (e.g., Development, Staging, Production) without restarting the shell.
  • Session Persistence: Maintains authentication state globally across the application lifecycle.

4. Intelligent Asset Management

  • MIME-Type Detection: Automatically identifies file types during upload to set accurate Content-Type headers, ensuring assets render correctly in web browsers.
  • Recursive Folder Uploads: Supports batch uploading of directory structures while maintaining the hierarchy within the S3 bucket.
  • Presigned URL Generation: Generates secure, time-limited access links (1-hour expiration) and automatically copies them to the system clipboard for immediate sharing.

Installation

CloudPail is available on the Python Package Index (PyPI). You can install it directly using pip:

pip install cloudpail

To upgrade to the latest version, run:

pip install --upgrade cloudpail

Configuration

CloudPail utilizes your standard AWS credentials.

  • If you have already configured the AWS CLI, no further setup is required.
  • If you are setting up this machine for the first time, run: aws configure

Usage

Once installed, the application is available system-wide using the cloudpail command:

cloudpail

Navigation

The interface uses standard keyboard controls for efficient operation:

  • Arrow Keys: Navigate through bucket and object lists.
  • Enter: Confirm selection or execute the chosen action.
  • Type-to-Filter: Rapidly filter long lists by typing the resource name directly into the menu.

System Architecture

CloudPail is built upon a modern Python stack designed for reliability and performance:

  • Boto3: Handles low-level AWS SDK interactions, authentication, and session management.
  • Rich: Renders high-performance tables, status indicators, and formatted terminal output.
  • InquirerPy: Manages interactive user input, validation, and menu navigation.
  • Pyperclip: Provides cross-platform clipboard integration for copying presigned URLs.

Contributing

CloudPail is an open-source project, and contributions are always welcome! Whether you're interested in fixing bugs, adding new features, or improving documentation, your help is appreciated.

If you'd like to contribute, please feel free to:

  • Fork the repository and submit a pull request.
  • Open an issue to report bugs or suggest improvements.

License

This project is distributed under the MIT License. See LICENSE for more information.

Copyright (c) 2025 shakeelsaga.

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

cloudpail-1.0.8.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

cloudpail-1.0.8-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file cloudpail-1.0.8.tar.gz.

File metadata

  • Download URL: cloudpail-1.0.8.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for cloudpail-1.0.8.tar.gz
Algorithm Hash digest
SHA256 ca8f2923ce35fbe4ae37d3bbea691f16b7b12e7b8d004b0e7b71075bfb144de4
MD5 2d3370ee4001a76cee247b065bcba4b7
BLAKE2b-256 667e8f53c244ca178a3dbc3ddb05faa8329d044324e2a209408a427ca49cd5eb

See more details on using hashes here.

File details

Details for the file cloudpail-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: cloudpail-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for cloudpail-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0b999f1e698f56544d844c62658bfd022c26f3a8e34e371e422028cbc98d76bf
MD5 3e57ba224125919acb7194903a619a60
BLAKE2b-256 a451b0a73507e25273874ca507b4278a452495d96d8676dd1b09d38c237b643f

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