def upload_file_s3(self, bucket, name, content, meta=None, public=True): k = AsyncKey(bucket) k.key = name if meta: for meta_key, meta_value in meta.iteritems(): k.set_metadata(meta_key, meta_value) params = {} if public: params['policy'] = 'public-read' result = yield gen.Task(k.set_contents_from_string, content, **params) l.info(u"Amazon S3 url: {0}".format( k.generate_url(expires_in=0, query_auth=False, force_http=True))) raise gen.Return(result)