nanvel/tornado-botocore

S3 DeleteObject throwing exception

ballagas opened this issue · 3 comments

Here is my code:

s3_delete_object = Botocore(
    service='s3', 
    operation='DeleteObject',
    region_name='us-east-1'
)

yield gen.Task(s3_delete_object.call,
                Bucket = bucket, 
                Key = relativePath
            )

I enabled botocore debug logging, and here is the trace.

2014-12-18 17:10:02,347 - botocore.hooks - DEBUG - Event before-call.s3.DeleteObject: calling handler <function add_expect_header at 0x108d2fd70> with kwargs {'event_name': u'before-call.s3.DeleteObject', 'operation': Operation:DeleteObject, 'endpoint': s3(https://s3.amazonaws.com), 'params': {'query_string': {}, 'headers': {}, 'url_path': u'/test/197/CAF3C4A8-584F-4D31-A843-822D39BB6A87-3241-0000050683D8681E.mp4', 'body': '', 'method': u'DELETE'}}
[D 141218 17:10:02 hooks:181] Event before-call.s3.DeleteObject: calling handler <function add_expect_header at 0x108d2fd70> with kwargs {'event_name': u'before-call.s3.DeleteObject', 'operation': Operation:DeleteObject, 'endpoint': s3(https://s3.amazonaws.com), 'params': {'query_string': {}, 'headers': {}, 'url_path': u'/test/197/CAF3C4A8-584F-4D31-A843-822D39BB6A87-3241-0000050683D8681E.mp4', 'body': '', 'method': u'DELETE'}}
[E 141218 17:10:02 web:1433] Uncaught exception GET /api/v4/?method=deleteRecording&relativePath=197%2FCAF3C4A8-584F-4D31-A843-822D39BB6A87-3241-0000050683D8681E.mp4 (127.0.0.1)
    Traceback (most recent call last):
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/web.py", line 1320, in _stack_context_handle_exception
        raise_exc_info((type, value, traceback))
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
        ret = fn(*args, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/web.py", line 1512, in future_complete
        f.result()
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
        raise_exc_info(self.__exc_info)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
        ret = fn(*args, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/gen.py", line 574, in inner
        self.set_result(key, result)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/gen.py", line 500, in set_result
        self.run()
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/gen.py", line 529, in run
        yielded = self.gen.throw(*exc_info)
      File "api_v4.py", line 667, in get
        Key = relativePath
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/gen.py", line 557, in run
        self.yield_point.start(self)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/gen.py", line 377, in start
        self.func(*self.args, **self.kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado_botocore/base.py", line 81, in call
        return self.operation_call(endpoint=self.endpoint, callback=callback, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado_botocore/base.py", line 30, in operation_call
        operation=self.operation, endpoint=endpoint, params=request_dict)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/botocore-0.80.0-py2.7.egg/botocore/session.py", line 735, in emit
        return self._events.emit(event_name, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/botocore-0.80.0-py2.7.egg/botocore/hooks.py", line 182, in emit
        response = handler(**kwargs)
    TypeError: add_expect_header() takes exactly 2 arguments (1 given)

I didn't test it with s3.
Try another library for S3: https://github.com/tornadoweb/tornado/wiki/Links

Did you have any success with resolving this issue with S3? I'm having a similar error with PutObject request.

For async file upload to S3 see: https://gist.github.com/nanvel/c489761a11ec2db184c5
(updated docs)