- Notifications
You must be signed in to change notification settings - Fork21
A simple library for interacting with Amazon S3.
License
NotificationsYou must be signed in to change notification settings
jpetrucciani/bucketstore
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
bucketstore is a very simple Amazon S3 client, written in Python. Itaims to be much more straight-forward to use than boto3, and specializesonly in Amazon S3, ignoring the rest of the AWS ecosystem.
- Treats S3 Buckets as Key/Value stores.
- Automatic support for
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
,andAWS_DEFAULT_REGION
environment variables. - Easily make keys (or entire buckets) publically accessable.
- Easily get the public URL for a given key.
- Generates temporary URLs for a given key.
- Use S3 in a pythonic way!
pip install bucketstore
importbucketstore# Create the bucket if it doesn't exist.bucket=bucketstore.get('bucketstore-playground',create=True)
>>> bucket<S3Bucket name='bucketstore-playground'># get/set using array syntax>>> bucket['foo']='bar'>>> bucket['foo']bar# get/set using methods>>> bucket.set('foo2','bar2')>>> bucket.get('foo2')bar2# list keys>>> bucket.list()[u'foo', u'foo2']# all keys>>> bucket.all()[<S3Key name=u'foo' bucket='bucketstore-playground'>, <S3Key name=u'foo2' bucket='bucketstore-playground'>]# check if a key exists in the bucket>>>'foo'in bucketTrue# delete keys in the bucket>>>del bucket['foo2']{}
>>> bucket.key('foo')<S3Key bucket='bucketstore-playground' name=u'foo'>>>> foo= _>>> foo.set('new value')# Generate a temporary share URL.>>> foo.temp_url(duration=1200)u'https://bucketstore-playground.s3.amazonaws.com/foo?AWSAccessKeyId=AKIAI2RVFNXIW7WS66QQ&Expires=1485493909&Signature=L3gD9avwQZQO1i11dIJXUiZ7Nx8%3D'# Make key publically accessable.>>> foo.make_public()>>> foo.url'https://s3.amazonaws.com/bucketstore-playground/foo'# Get / set metadata for key.>>> foo.meta= {'foo':'bar'}>>> foo.meta{'foo': 'bar}# Rename key to 'foo3'.>>> foo.rename('foo3')# Delete the key.>>> foo.delete()# Create a key with a content type>>> foo= bucket.key('foo.html')>>> foo.set('<h1>bar</h1>',content_type='text/html')# upload to key>>> bucket.key('test.py').upload('/tmp/test.py')# or upload with a file-like object! (make sure it's open in binary mode)>>>withopen('/tmp/test.py','rb')asfile:>>> bucket.key('test.py').upload(file)# download to file>>> bucket.key('test.py').download('/tmp/test.py')# or download to a file-like object! (make sure it's open in binary mode)>>>withopen('/tmp/test.py','wb')asfile:>>> bucket.key('test.py').download(file)# size of key>>> bucket.key('test.py').size()>>>len(bucket.key('test.py'))15
Other methods includebucketstore.login(access_key_id, secret_access_key)
,bucketstore.list()
, andbucketstore.get(bucket_name, create=False)
.
Tests are run throughTox.
✨🍰✨
About
A simple library for interacting with Amazon S3.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.