Skip to main content

Simple AWS API for S3, DynamoDB, SNS, and SQS

Project description

awsimple

Simple API for basic AWS services such as S3 (Simple Storage Service), DynamoDB (NoSQL datbase), and SQS (Simple Queuing Service).

Features:

  • Simple Object Oriented API on top of boto3

  • One-line S3 file write, read, and delete

  • Automatic S3 retries

  • Locally cached S3 accesses

  • True file hashing (SHA512) for S3 files (S3's etag is not a true file hash)

  • DynamoDB full table scans (with local cache option)

  • DynamoDB secondary indexes

  • Built-in pagination (e.g. for DynamoDB table scans and queries). Always get everything you asked for.

  • Can automatically set SQS timeouts based on runtime data (can also be user-specified)

Usage

pip install awsimple

Examples

S3

# print string contents of an existing S3 object
s = S3Access(profile_name="testawsimple", bucket="testawsimple").read_string("helloworld.txt")
print(s)

DynamoDB

dynamodb_access = DynamoDBAccess(profile_name="testawsimple", table_name="testawsimple")

# put an item into DynamoDB
dynamodb_access.put_item({"id": "batman", "city": "Gotham"})

# now get it back
item = dynamodb_access.get_item("id", "batman")
print(item["city"])  # Gotham

Introduction

awsimple is a simple interface into basic AWS services such as S3 (Simple Storage Service) and DynamoDB (a simple NoSQL database). It has a set of higher level default settings and behavior that should cover many basic usage models.

Discussion

AWS's "serverless" resources offer many benefits. You only pay for what you use, easily scale, and generally have high performance and availability.

While AWS has many varied services with extensive flexibility, using it for more straight-forward applications is sometimes a daunting task. There are access modes that are probably not requried and some default behaviors are not best for common usages. awsimple aims to create a higher level API to AWS services (such as S3, DynamoDB, and SQS) to improve programmer productivity.

S3

awsimple calculates the local file hash (sha512) and inserts it into the S3 object metadata. This is used to test for file equivalency.

Caching

S3 objects and DynamoDB tables can be cached locally to reduce network traffic, minimize AWS costs, and potentially offer a speedup.

Whatawsimple Is Not

  • awsimple is not necessarily the most memory and CPU efficient

  • awsimple does not provide cost monitoring hooks

  • awsimple does not provide all the options and features that the regular AWS API (e.g. boto3) does

Project details


Release history Release notifications | RSS feed

This version

0.8.0

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

awsimple-0.8.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file awsimple-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: awsimple-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.2

File hashes

Hashes for awsimple-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4bcb404e5914b05350db80811942d86bef6607fc13ff06860e8972672b5ca96e
MD5 66f5ede5b2b6e9f43136ec5c70742563
BLAKE2b-256 eaa1dc691a7d6d9369b4a6dfe3bd77413ea9e2aec6c89f523ca80889612cf6c3

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