Skip to content

s3_object.py

S3Object dataclass

Bases: IO[bytes]

IO for loading and saving objects from S3 using boto3.

Example:

>>> from ordeq_boto3 import S3Object
>>> import boto3

>>> s3_object = S3Object(
...     bucket="my-bucket",
...     key="path/to/my_object",
...     client=boto3.client('s3')
... )
>>> data = s3_object.load()  # doctest: +SKIP

Extra parameters can be passed to the load and save methods, such as:

>>> from datetime import datetime
>>> data = s3_object.load(
...     IfModifiedSince=datetime(2015, 1, 1)
... )  # doctest: +SKIP
>>> s3_object.save(ACL="authenticated-read")  # doctest: +SKIP

When client is not provided, it will be created using boto3.client("s3"):

>>> s3_object = S3Object(
...     bucket="my-bucket",
...     key="path/to/my_object",
... )