Note that there are some explanatory texts on larger screens.

plurals
  1. POboto connection works locally and in heroku python shell but fails in webapp
    primarykey
    data
    text
    <p>I'm not sure how to diagnose this further. Heroku's evns are configured properly. Everything worked on my local machine line a charm. In production i get a internal server error when i try to use this functionality. </p> <p>I booked up a live shell and everything worked fine there to:</p> <pre><code>In [5]: s3conn = boto.connect_s3(app.config["AWS_ACCESS_KEY_ID"],app.config["AWS_SECRET_ACCESS_KEY"]) In [6]: s3conn Out[6]: S3Connection:s3.amazonaws.com In [7]: bucket = s3conn.get_bucket(app.config["S3_BUCKET"]) In [8]: bucket Out[8]: &lt;Bucket: petalbucket&gt; In [10]: key = bucket.get_key('AGRAPH') In [11]: key In [12]: type(key) Out[12]: NoneType In [14]: key = bucket.get_key('charts/AGRAPH') In [15]: key Out[15]: &lt;Key: petalbucket,charts/AGRAPH&gt; In [16]: seconds = 60*5 In [17]: url = key.generate_url(expires_in=seconds) In [18]: url Out[18]: 'https://petalbucket.s3.amazonaws.com/charts/AGRAPH?Signature=VL9Q9r0Q%2F5UbZDhW%2F%2BeUYFezSGU%3D&amp;Expires=1357251512&amp;AWSAccessKeyId=AKIAJBEQAKKMVPGYYNRA' </code></pre> <p>code:</p> <pre><code> def download_s3(file_title): s3conn = boto.connect_s3(app.config["AWS_ACCESS_KEY_ID"],app.config["AWS_SECRET_ACCESS_KEY"]) bucket = s3conn.get_bucket(app.config["S3_BUCKET"]) key = bucket.get_key(file_title) seconds = 60*5 url = key.generate_url(expires_in=seconds) return url </code></pre> <p>heroku logs:</p> <pre><code>2013-01-03T22:21:05+00:00 app[web.1]: respiter = self.wsgi(environ, resp.start_response) 2013-01-03T22:21:05+00:00 app[web.1]: response = self.make_response(self.handle_exception(e)) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/web_transaction.py", line 563, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: return wrapped(*args, **kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: Traceback (most recent call last): 2013-01-03T22:21:05+00:00 app[web.1]: result = application(environ, _start_response) 2013-01-03T22:21:05+00:00 app[web.1]: 2013-01-03 22:21:05 [7] [ERROR] Error handling request 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 105, in handle_request 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/object_wrapper.py", line 220, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: self._nr_instance, args, kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/web_transaction.py", line 485, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: return self._nr_next_object(environ, start_response) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app 2013-01-03T22:21:05+00:00 app[web.1]: response = self.full_dispatch_request() 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request 2013-01-03T22:21:05+00:00 app[web.1]: rv = self.handle_user_exception(e) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request 2013-01-03T22:21:05+00:00 app[web.1]: rv = self.dispatch_request() 2013-01-03T22:21:05+00:00 app[web.1]: self._nr_instance, args, kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/object_wrapper.py", line 220, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: self._nr_instance, args, kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: return wrapped(*args, **kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask_login.py", line 496, in decorated_view 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/petalapp/views.py", line 135, in add_pci_form 2013-01-03T22:21:05+00:00 app[web.1]: return fn(*args, **kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: AttributeError: 'NoneType' object has no attribute 'generate_url' 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/petalapp/aws/tools.py", line 58, in download_s3 2013-01-03T22:21:05+00:00 app[web.1]: url = key.generate_url(expires_in=seconds) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/function_trace.py", line 81, in literal_wrapper 2013-01-03T22:21:05+00:00 app[web.1]: url =download_s3(in_file + title) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/pre_function.py", line 14, in wrapper 2013-01-03T22:21:05+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args) 2013-01-03T22:21:05+00:00 app[web.1]: return self.wsgi_app(environ, start_response) 2013-01-03T22:21:05+00:00 app[web.1]: return wrapped(*args, **kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/object_wrapper.py", line 220, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/function_trace.py", line 81, in literal_wrapper 2013-01-03T22:21:05+00:00 app[web.1]: return wrapped(*args, **kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/object_wrapper.py", line 220, in __call__ 2013-01-03T22:21:05+00:00 app[web.1]: self._nr_instance, args, kwargs) 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.9.0.21/newrelic/api/transaction_name.py", line 51, in literal_wrapper 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app 2013-01-03T22:21:05+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request </code></pre> <p>My hunch is i'm not understanding something about boto's interaction with heroku. Or haven't set something correctly but i can't see what that could be from this information.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload