launchflow.aws.s3
S3Bucket
1class S3Bucket(AWSResource[S3BucketConnectionInfo])
A storage bucket in AWS's S3 service.
Example usage:
1import launchflow as lf
2
3s3 = lf.aws.S3Bucket("my-bucket")
4
5# Quick utilities for reading and writing file contents
6s3.upload_from_string("file contents", "path/in/s3/file.txt")
7
8# You can also use the boto3 library directly
9bucket = s3.bucket()
10with open("my-file", "r") as f:
11 bucket.upload_fileobj(f, "path/in/s3/file.txt")
__init__
1def __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
1def bucket()
Get the AWS bucket resource returned by the boto3 library.
Returns:
- The AWS bucket object from the boto3 library.
upload_file
1def 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:
1import launchflow as lf
2bucket = lf.aws.S3Bucket("my-bucket")
3bucket.upload_file("my-file.txt", "my-file.txt")
4bucket.upload_file(open("my-file.txt", "r"), "my-file.txt")
upload_from_string
1def 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:
1import launchflow as lf
2
3bucket = lf.aws.S3Bucket("my-bucket")
4bucket.upload_from_string("hello", "hello.txt")
download_file
1def 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:
1import launchflow as lf
2bucket = lf.aws.S3Bucket("my-bucket")
3with open("my-file.txt", "w") as f:
4 f.write(bucket.download_file("my-file.txt"))