launchflow.aws.s3

S3Bucket

1
class S3Bucket(AWSResource[S3BucketConnectionInfo])

A storage bucket in AWS's S3 service.

Example usage:

1
import launchflow as lf
2
3
s3 = lf.aws.S3Bucket("my-bucket")
4
5
# Quick utilities for reading and writing file contents
6
s3.upload_from_string("file contents", "path/in/s3/file.txt")
7
8
# You can also use the boto3 library directly
9
bucket = s3.bucket()
10
with open("my-file", "r") as f:
11
bucket.upload_fileobj(f, "path/in/s3/file.txt")

__init__

1
def __init__(name: str, *, region=None) -> None

Create a new S3 bucket resource.

Args:

  • name (str): The name of the bucket. This must be globally unique.
  • region (str): The region of the bucket. Defaults to the environment default.

bucket

1
def bucket()

Get the AWS bucket resource returned by the boto3 library.

Returns:

upload_file

1
def upload_file(to_upload: Union[str, IO], bucket_path: str)

Uploads a file to the S3 bucket.

Args:

  • to_upload (Union[str, IO]): The file to upload. This can be a string representing the path to the file, or a file-like object.
  • bucket_path (str): The path to upload the file to in the bucket.

Example usage:

1
import launchflow as lf
2
bucket = lf.aws.S3Bucket("my-bucket")
3
bucket.upload_file("my-file.txt", "my-file.txt")
4
bucket.upload_file(open("my-file.txt", "r"), "my-file.txt")

upload_from_string

1
def upload_from_string(to_upload: str, bucket_path: str)

Uploads a string to the S3 bucket.

Args:

  • to_upload (str): The string to upload.
  • bucket_path (str): The path to upload the string to in the bucket.

Example usage:

1
import launchflow as lf
2
3
bucket = lf.aws.S3Bucket("my-bucket")
4
bucket.upload_from_string("hello", "hello.txt")

download_file

1
def download_file(bucket_path: str)

Downloads a file from the S3 bucket.

Args:

  • bucket_path (str): The path to the file in the bucket.

Example usage:

1
import launchflow as lf
2
bucket = lf.aws.S3Bucket("my-bucket")
3
with open("my-file.txt", "w") as f:
4
f.write(bucket.download_file("my-file.txt"))