Skip to main content

Efficient access to S3

Project description

acme-s3

Efficient operations on S3 with retries, progress tracking and parallel processing

Problem

Interactive with boto3 client can at times lack some features. This library aims to provide a more user-friendly interface to S3 operations.

Features

  • Multithreaded opeations for opeations on multiple files
  • Progress tracking for all operations
  • Retries for recoverable errors
  • Benchmarking tool to test the performance of the operations
  • Graceful error handling with useful messages

Dev environment

The project comes with a python development environment. To generate it, after checking out the repo run:

chmod +x create_env.sh

Then to generate the environment (or update it to latest version based on state of uv.lock), run:

./create_env.sh

This will generate a new python virtual env under .venv directory. You can activate it via:

source .venv/bin/activate

If you are using VSCode, set to use this env via Python: Select Interpreter command.

Example usage

as3 bench --bucket $TEST_AWS_BUCKET_NAME --prefix s3-benchmark

Project template

This project has been setup with acme-project-create, a python code template library.

Required setup post use

  • Enable GitHub Pages to be published via GitHub Actions by going to Settings-->Pages-->Source

  • Create release environment for GitHub Actions to enable uploads of the library to PyPi

  • Setup auth to PyPI for the GitHub Action implemented in .github/workflows/release.yml via Trusted Publisher uv publish doc

  • Once you create the python environment for the first time add the uv.lock file that will be created in project directory to the source control and update it each time environment is rebuilt

  • In order not to replicate documentation in docs/docs/index.md file and README.md in root of the project setup a symlink from README.md file to the index.md file. To do this, from docs/docs dir run:

    ln -sf ../../README.md index.md

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

acme_s3-0.0.5.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

acme_s3-0.0.5-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file acme_s3-0.0.5.tar.gz.

File metadata

  • Download URL: acme_s3-0.0.5.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.2

File hashes

Hashes for acme_s3-0.0.5.tar.gz
Algorithm Hash digest
SHA256 264f5717d831557028d81be318f64b198ef6c42cb9441c7e52bcad8ed6f4f994
MD5 2bf071c6302909ad12ce51c43f49116b
BLAKE2b-256 e1ce9de51affc5abf2fd43ef84e1df3cf2efb24bffe102bf50107636cc682f52

See more details on using hashes here.

File details

Details for the file acme_s3-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: acme_s3-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.2

File hashes

Hashes for acme_s3-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ff54c4e6072a7d45d761a4567319ac079a33afe8baea6208f1e156851d6460b0
MD5 dcffa5bbb0ad2159814dd2863e701425
BLAKE2b-256 12eefeb298cf1c8e4a1e447e809f5c5ab12656ce880f9865c6f442236191f14c

See more details on using hashes here.

Supported by

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