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.