Skip to content

Instantly share code, notes, and snippets.

@camilonova
Created June 26, 2013 18:50
Show Gist options
  • Save camilonova/5870253 to your computer and use it in GitHub Desktop.
Save camilonova/5870253 to your computer and use it in GitHub Desktop.
redactor S3 integration
@staff_member_required
def generate_s3_auth_link(request):
"""Genera una url de autenticación para subir imagenes a amazon S3.
Utilizada en el admin por el editor de texto redactor.
"""
file_path = 'inlines/%s' % request.GET['name']
headers = {
'Content-Type': request.GET['type'],
'x-amz-acl': 'public-read'
}
connection = S3Connection(
settings.AWS_ACCESS_KEY_ID,
settings.AWS_SECRET_ACCESS_KEY,
)
url = connection.generate_url(
expires_in=(5 * 60),
method='PUT',
bucket=settings.AWS_STORAGE_BUCKET_NAME,
key=file_path,
headers=headers,
)
return HttpResponse(url)
@staff_member_required
def get_s3_image_json(request):
"""Genera un json de las imagenes previamente subidas a amazon S3.
Utilizada en el admin por el editor de texto redactor.
"""
con = S3Connection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
bucket = con.get_bucket(settings.AWS_STORAGE_BUCKET_NAME)
files = []
for key in bucket.list('inlines/'):
if not key.name.endswith('/'):
public_url = key.generate_url(expires_in=1000, query_auth=False)
files.append({
'thumb': public_url,
'image': public_url,
'title': key.name.split('/')[-1],
})
return HttpResponse(json.dumps(files))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment