Skip to main content

s3minimal - The Minimalist S3 Library

PyPI - Version

PyPI - Python Version

License: MIT

s3minimal is a Python library designed to simplify interactions with Amazon S3 using the aiobotocore and botocore libraries. It provides asynchronous and synchronous classes for various S3 operations.

Installation

pip install s3minimal

Usage

Initialization

Initialize the S3 class with your AWS credentials, endpoint URL, and region name.

from s3minimal import S3

s3 = S3(
    endpoint_url="https://s3.amazonaws.com",
    region_name="us-east-1",
    aws_access_key_id="your_access_key",
    aws_secret_access_key="your_secret_key",
)

# or if you have environment variables set for your AWS credentials
s3 = S3()

For synchronous operations, you can use the S3Sync class in a similar manner, and all asynchronous methods described below can be called without await.

Set Bucket

s3.set_bucket("your_bucket_name")

Download File

file = await s3.download("path/to/your/file")

Upload File

with open("path/to/your/local/file", "rb") as f:
    file_obj = io.BytesIO(f.read())

await s3.upload("path/to/your/s3/file", file_obj)

Move File

await s3.move("path/to/source/file", "path/to/destination/file")

Generate Presigned URL

url = await s3.generate_presigned_url("path/to/your/file")

Create Bucket

Create a new S3 bucket:

await s3.create_bucket("new_bucket_name")

To set CORS configurations during bucket creation, pass the set_cors parameter as True and provide the cors_configuration:

cors_configuration = {
    "CORSRules": [
        {
            "AllowedHeaders": ["Access-Control-Allow-Origin", "*"],
            "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
            "AllowedOrigins": ["*"],
            "MaxAgeSeconds": 60,
        }
    ]
}

await s3.create_bucket("new_bucket_name", set_cors=True, cors_configuration=cors_configuration)

List Files

files = await s3.list_files("path/in/your/bucket")

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Release files for s3minimal 0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s3minimal 0.4
File Size Uploaded
s3minimal-0.4.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s3minimal 0.4
File Interpreter ABI Platform
s3minimal-0.4-py3-none-any.whl Python 3 none any Details

Total release size: 10.7 kB

Release files / s3minimal-0.4.tar.gz

Download URL s3minimal-0.4.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
177db93ffb26d2f50edcdd47a20684885fed2657fa9120e76212e6521162461e
BLAKE2b-256 checksum
How to use checksums
ae572c11aa9da517a269cb453d86d86cf6073edb4252bf75271df3c656c21355
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.12 Darwin/23.1.0

Release files / s3minimal-0.4-py3-none-any.whl

Download URL s3minimal-0.4-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2faf7ba37aaadeb0b5c3eb39502f10a91f80859c8d55abd58af0270494dcfd44
BLAKE2b-256 checksum
How to use checksums
e48d4bbf751b23e087081404dbcc38023f13672ef5e1ba140ec35076869641d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.12 Darwin/23.1.0

Release history Release notifications | RSS feed

This release

0.4 This release

2 release files

0.3

2 release files

0.2

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.5

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page