Skip to main content

Some simple wrapper functions around boto3 functionality.

Project description

Python S3 Utils

Coverage

Overview

Wrapper around boto3 functionality for common interactions with S3. It may be a bit overkill, but there are some minor quality of life improvements.

Installation

Install Python S3 Utils:

python3 -m pip install python-s3-utils

Usage

import boto3
from s3_utils import S3Bucket

session = boto3.session.Session(
    aws_access_key_id="AWS_ACCESS_KEY_ID",
    aws_secret_access_key="AWS_SECRET_ACCESS_KEY",
)

s3bucket = S3Bucket(session, "bucket-name")

# Returns True/False
s3bucket.file_exists('key-name')

# Returns a generator of all objects in the bucket, does not have a 1000 object limit like `list_objects`
s3bucket.list_objects_recursive()

# File name becomes the key name if key_name not provided
s3bucket.upload_file("path/filename.jpg", key_name=None)

# Upload all files in a directory
s3bucket.upload_files("path/")

# File would be downloaded to target_dir/prefix/filename.jpg
s3bucket.download_file("prefix/filename.jpg", "target_dir")

# Returns a dict summary of the operation
s3bucket.delete_files(["path/filename.jpg", "key-name"])

Development

To get a list of all commands with descriptions simply run make.

make env
make pip_install
make pip_install_editable

Testing

make pytest
make coverage
make open_coverage

Issues

If you experience any issues, please create an issue on GitHub.

History

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.1.0 (2024-05-14)

  • First release

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

python_s3_utils-0.1.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

python_s3_utils-0.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file python_s3_utils-0.1.0.tar.gz.

File metadata

  • Download URL: python_s3_utils-0.1.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.11

File hashes

Hashes for python_s3_utils-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a82e29d9bc930ed0a7ba0dbc76a4d78b96cf5a51439525704d979949304f882d
MD5 fd8c0bdf44b0c353c20a36be56621c01
BLAKE2b-256 5322f2a8aa27ee6d2b5e7a70cd95473ea407c4a733d96a6a21409dd5f596950d

See more details on using hashes here.

File details

Details for the file python_s3_utils-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_s3_utils-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8238b79026f3c61d343665a9bd3f05f55e4896bbf6c32d0b0a8b7581f8a73855
MD5 221503a2284e6a55cf929d232eab32a3
BLAKE2b-256 0f2ee7f36709423fef080a2a4b6565222d94fc67746b37ce05404f76ddddf440

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page