Skip to main content

A lightweight S3 client that does not rely on boto3

Project description

Purpose

The AWS Boto3 Client is quite heavy, and usually specific functionality is needed. This module only implements needed functionality uses the requests library and the S3 Resp API.

Reference doc used for this creation: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html#signing-request-intro

Note: The parameter names and function names were copied from the Boto3 S3 Client. It does necessarily have all the options for the function

Supported Functions

Client.download_file(Bucket, Key, Filename)

Download an S3 object to a file

Usage:

from light_s3_client import Client

s3 = Client(
    region="us-west-1",
    access_key="REPLACE_ME",
    secret_key="REPLACE_ME"
)
s3.download_file("mybucket", "hello.txt", "/tmp/hello.txt")

PARAMETERS:

  • Bucket (str) – The name of the bucket to download from.

  • Key (str) – The name of the key to download from.

  • Filename (str) – The path to the file to download to.

Client.upload_fileobj(Fileobj, Bucket, Key)

Upload a File Object to S3

Usage:

from light_s3_client import Client
import json


def get_file_contents(file_name) -> bytes:
    file_handle = open(file_name, "r")
    content = json.load(file_handle)
    str_content = json.dumps(content)
    file_handle.close()
    data = str_content.encode("utf-8")
    return data


s3 = Client(
    region="us-west-1",
    access_key="REPLACE_ME",
    secret_key="REPLACE_ME"
)
upload_data = get_file_contents("example.json")
s3.upload_fileobj(upload_data, "example-bucket", "path/example.json")

PARAMETERS:

  • Fileobj (a file-like object) – A file-like object to upload. At a minimum, it must implement the read method, and must return bytes.

  • Bucket (str) – The name of the bucket to upload to.

  • Key (str) – The name of the key to upload to.

Client.delete_object(Bucket, Key)

Delete a S3 object

Usage:

from light_s3_client import Client

s3 = Client(
    region="us-west-1",
    access_key="REPLACE_ME",
    secret_key="REPLACE_ME"
)
s3.delete_file("example-bucket", "path/example.json")

PARAMETERS:

  • Bucket (str) – The name of the bucket to upload to.

  • Key (str) – The name of the key to upload to.(Fileobj, Bucket, Key)

Client.list_objects(Bucket, Prefix)

Lists all keys in an object

Usage:

from light_s3_client import Client

s3 = Client(
    region="us-west-1",
    access_key="REPLACE_ME",
    secret_key="REPLACE_ME"
)
keys = s3.list_objects("example-bucket", "prefix")

PARAMETERS:

  • Bucket (str) – The name of the bucket to upload to.

  • Prefix (str) – The prefix to use as the search for getting keys from the bucket

Client.get_object(Bucket, Key)

Returns if an object exists or not

Usage:

from light_s3_client import Client

s3 = Client(
    region="us-west-1",
    access_key="REPLACE_ME",
    secret_key="REPLACE_ME"
)
keys = s3.get_object("example-bucket", "path/file.txt")

PARAMETERS:

  • Bucket (str) – The name of the bucket to upload to.

  • Key (str) – The key to check if it exists in the bucket

Client Parameters

property

Required

type

description

region

True

string

The S3 region being used. This ends up as part of the Server URL

access_key

True

string

The AWS Access Key for API Access

secret_key

True

string

The AWS Secret Key for API Access

server

False

string

An override of the HTTPS URL to use. When used then region is not used

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

light-s3-client-0.0.20.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

light_s3_client-0.0.20-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file light-s3-client-0.0.20.tar.gz.

File metadata

  • Download URL: light-s3-client-0.0.20.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for light-s3-client-0.0.20.tar.gz
Algorithm Hash digest
SHA256 d682b8579cc6a625c4828e1b494fa7b7744a8fd5cd1b9c576c893ce8b9ee2134
MD5 618644f48b1e34131104151f5b955f93
BLAKE2b-256 38e2f403a009a396545518e72237252b997c022dc278bb7584e5f8c406ca8063

See more details on using hashes here.

File details

Details for the file light_s3_client-0.0.20-py3-none-any.whl.

File metadata

File hashes

Hashes for light_s3_client-0.0.20-py3-none-any.whl
Algorithm Hash digest
SHA256 0a64d94a767ab9a2a828c12251d856209fcfa91338aa34ae0dcc042b5c346ef1
MD5 769c13136405a67bc41287e509f1458e
BLAKE2b-256 b19881a388775993f1e4ee2a164a05a955129d7e21260a4848633392cebf166f

See more details on using hashes here.

Supported by

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