/yas3

Yet another Python S3 client

Primary LanguagePythonOtherNOASSERTION

YAS3 - Yet Another S3 Client

Yas3 is a simple client for managing buckets/storage in S3 (and S3 compatible endpoints) for people who don't want the complexity of learning boto3.

Uploading Objects

You can upload from Object paths:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.upload('test.txt', 'Object.txt', bucket='bucket')

Or as bytes:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.upload(Object_bytes, 'Object.txt', bucket='bucket', type='application/octet-stream')

The Object type is guessed using mimetypes, but it can be easily specified using mimetype='text/json'.

Downloading Objects

You can download the Object locally:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.download('Object.txt', 'test.txt', bucket='bucket')

Or you can get the response directly:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    bucket_data = conn.get('Object.txt', bucket='bucket')
    print(bucket_data)

Object Operations

Moving Objects:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.move('Object.txt', 'new_Object.txt', source_bucket='bucket', target_bucket='bucket')

Copying Objects:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.copy('Object.txt', 'new_Object.txt', source_bucket='bucket', target_bucket='bucket')

Deleting Objects:

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.delete('Object.txt', bucket='bucket')

Listing Objects in a bucket

with yas3.Connection(access_key=ACCESS_KEY, secret_key=SECRET_KEY, endpoint=ENDPOINT) as conn:
    conn.list_Objects(bucket='bucket', prefix=None)

Using it as an object

If you want to create an object, feel free:

conn = yas3.Connection(...)
...
conn.close()

Full Docs

See the full API documentation here.