Skip to content

Instantly share code, notes, and snippets.

@sladkovm
Created April 21, 2018 09:20
Show Gist options
  • Save sladkovm/d12381f9e4a2a0f50a5e30f4aff3eef5 to your computer and use it in GitHub Desktop.
Save sladkovm/d12381f9e4a2a0f50a5e30f4aff3eef5 to your computer and use it in GitHub Desktop.
Getting started with Digital Ocean Spaces using python and boto3
import boto3
import os
import json
client = boto3.client('s3',
region_name=os.getenv('DO_SPACES_REGION'),
endpoint_url='https://{}.digitaloceanspaces.com'.format(os.getenv('DO_SPACES_REGION')),
aws_access_key_id=os.getenv('DO_SPACES_KEY'),
aws_secret_access_key=os.getenv('DO_SPACES_SECRET'))
def list_objects(client, **kwargs):
"""list objects in the bucket
:param client: boto3 client object pointing to s3
:return: list of object keys
"""
r = client.list_objects(Bucket=os.getenv('DO_BUCKET'))
return r.get('Contents')
def upload_json(client, f_name, **kwargs):
"""Upload json file to the S3 bucket
:parame client: boto3 client object pointing to s3
:param f_name: path to json file to upload
"""
with open(f_name, 'rb') as f:
_bucket = kwargs.get('Bucket', os.getenv('DO_BUCKET'))
_key = kwargs.get('Key', os.path.basename(f_name))
_prefix = kwargs.get('Prefix', None)
if _prefix:
_key = _prefix + '/' + _key
client.upload_fileobj(f, Bucket=_bucket, Key=_key)
return _key
def delete_object(key, **kwargs):
"""Delete object"""
_bucket = kwargs.get('Bucket', os.getenv('DO_BUCKET'))
client.delete_object(Bucket=_bucket, Key=key)
return key
@pSnehanshu
Copy link

What is os.getenv('DO_BUCKET')?

@r1235613
Copy link

r1235613 commented Nov 5, 2018

@pSnehanshu
bucket's name

@rajat499
Copy link

rajat499 commented Sep 5, 2021

How to set ACLs and everything?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment