Skip to main content

S3Url is a helper class that can help with simple operations on AWS S3 objects

Project description

Coverage Badge

Overview

S3Url is a helper class that can help with simple operations on AWS S3 objects.

Installation

Get from https://pypi.org/project/s3-url-helper/
e.g pip install s3-url-helper

Usage

from s3_url import S3Url

file_url = S3Url(f's3://test-bucket/prefix/file.json')

# url component properties
assert file_url.bucket == 'test-bucket'
assert file_url.key == 'prefix/file.json'

# factory methods
file_url = S3Url.from_url('s3://test-bucket/prefix/file.json')
file_url = S3Url.from_bucket_key(bucket='test-bucket', key='prefix/file.json')

# access underlying boto3 s3 resource object
boto3_obj = file_url.object

# return url string
url_str: str = file_url.url
url_str: str = str(file_url)
assert url_str == 's3://test-bucket/prefix/file.json'

# check if file exists
exists: bool = file_url.exists()
assert exists

# check if any files exist in prefix (url should end with /)
prefix_exists = S3Url('s3://test-bucket/prefix/').prefix_exists()
assert prefix_exists

# read text/json
file_content: str = file_url.read_text()
file_content_json: json = file_url.read_json()

# delete file
file_url.delete()
assert not file_url.exists()

# write text/json
file_url.write_text("test data")
file_url.write_json({"testEntry": "test data"})
assert file_url.exists()

# copy to another object
file_url.copy_to('s3://test-bucket/prefix/file-copy.json')
S3Url('s3://test-bucket/prefix/another-file-copy.json').copy_from(file_url)

# delete all filed in prefix
prefix_url = S3Url('s3://test-bucket/prefix/')
prefix_url.delete_dir()

assert not prefix_url.prefix_exists()
assert not file_url.exists()

# see tests for more examples

Development notes

Install dev dependencies: pip install '.[dev]' pip install '.[build]'

build/upload:

py -m build
py -m twine upload --repository pypi dist/*  

todo - write docstrings

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s3_url_helper-0.4.3.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s3_url_helper-0.4.3-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file s3_url_helper-0.4.3.tar.gz.

File metadata

  • Download URL: s3_url_helper-0.4.3.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for s3_url_helper-0.4.3.tar.gz
Algorithm Hash digest
SHA256 ae8cfdab3f594f631cff78498f1056917679c8b9501201c98a90af45c462c67f
MD5 c382123d3e9c2f06f543b3e2c66c49b4
BLAKE2b-256 cc0f9b7ad31993c2fa714998a91571d7369e8d59c7bcf44f312d6eecd99718c4

See more details on using hashes here.

File details

Details for the file s3_url_helper-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: s3_url_helper-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for s3_url_helper-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ab7f781a24d92535262a47c615642f80fe74e3b767280cb172860ef56c0fd17d
MD5 f7444a62dbedfc46c12a9dadd2eae65e
BLAKE2b-256 5a44b9dc78e5d7d7dba24d59db6026f860618c01f5870c575ca29bf7a9d5c2ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page