Skip to content

ordeq_boto3

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",
... )

S3Resource dataclass

Bases: Input[ServiceResource]

IO object that establishes a boto3 S3 resource connection on load.

Example:

>>> from ordeq_boto3 import S3Resource
>>> import os
>>> s3_resource = S3Resource()
>>> resource = s3_resource.load(
...     endpoint_url=os.getenv("AWS_S3_ENDPOINT_URL"),
...     region_name=os.getenv("AWS_DEFAULT_REGION"),
...     aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
...     aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
...     aws_session_token=os.getenv("AWS_SESSION_TOKEN"),
... )

load(**load_options)

Establishes and returns a boto3 S3 resource.

Parameters:

Name Type Description Default
load_options Any

Additional options to pass to boto3.resource

{}

Returns:

Type Description
ServiceResource

The S3 ServiceResource