I’ve been trying to get the nxinx upload stuff working…
I think i have the nginx config is working properly (files are present in the right spot with correct ownership and have correct content),
but I see a traceback in the log (see below).
I don’t see anything in the mail list search about this, so maybe I’ve done something wrong...
— here’s are the relevant bits of my galaxy config file ---
# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module.
# Configuration for this is complex and explained in detail in the
# documentation linked above. The upload store is a temporary directory in
# which files uploaded by the upload module will be placed.
nginx_upload_store = /mnt/galaxy/data/galaxy/tmp/upload_store
# This value overrides the action set on the file upload form, e.g. the web
# path where the nginx_upload_module has been configured to intercept upload
# requests.
nginx_upload_path = /_upload
——nginx config ——
#direct file uploads
location /_upload {
upload_store /mnt/galaxy/data/galaxy/tmp/upload_store;
upload_pass_form_field "";
upload_set_form_field "__${upload_field_name}__is_composite" "true";
upload_set_form_field "__${upload_field_name}__keys" "name path";
upload_set_form_field "${upload_field_name}_name" "$upload_file_name";
upload_set_form_field "${upload_field_name}_path" "$upload_tmp_path";
upload_pass_args on;
upload_pass /_upload_done;
}
location /_upload_done {
set $dst /tool_runner/index;
if ($args ~ nginx_redir=([^&]+)) {
set $dst $1;
}
rewrite "" $dst;
}
Any ideas?
Brad
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/web/framework/middleware/remoteuser.py', line 92 in __call__
return self.app( environ, start_response )
File '/mnt/galaxy/data/galaxy/galaxy-dist/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpexceptions.py', line 633 in __call__
return self.application(environ, start_response)
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/web/framework/base.py', line 132 in __call__
return self.handle_request( environ, start_response )
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/web/framework/base.py', line 190 in handle_request
body = method( trans, **kwargs )
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/webapps/galaxy/controllers/tool_runner.py', line 84 in index
template, vars = tool.handle_input( trans, params.__dict__ )
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/tools/__init__.py', line 1869 in handle_input
self.update_state( trans, self.inputs_by_page[state.page], state.inputs, incoming, old_errors=old_errors or {}, source=source )
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/tools/__init__.py', line 2263 in update_state
current_case = input.get_current_case( value, trans )
File '/mnt/galaxy/data/galaxy/galaxy-dist/lib/galaxy/tools/parameters/grouping.py', line 462 in get_current_case
raise Exception( "No case matched value:", self.name, str_value )
Exception: ('No case matched value:', 'files_metadata', None)
CGI Variables
-------------
CONTENT_LENGTH: '-1'
CONTENT_TYPE: 'multipart/form-data; boundary=----WebKitFormBoundaryfTsa16a7MJyYSF0i'
HTTP_ACCEPT: 'application/json'
HTTP_ACCEPT_ENCODING: 'gzip,deflate,sdch'
HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.8'
HTTP_AUTHORIZATION: 'Basic bGFuZ2hvcnN0Om1pZWRoaWRsc2hhZmRv'
HTTP_CACHE_CONTROL: 'no-cache'
HTTP_CONNECTION: 'close'
HTTP_COOKIE: 'galaxysession=dacacca08a0d5b7ec42fdebd408f7de21fe616408da7cc0a81d03a170f28a8adb286af52e48220be; __utma=171448127.504006193.1380078797.1392
167382.1394500277.13; __utmc=171448127; __utmz=171448127.1392167382.12.5.utmcsr=
duckduckgo.com|utmccn=(referral)|utmcmd=referral|utmcct=/'
HTTP_DNT: '1'
HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36'
HTTP_X_FORWARDED_FOR: '172.17.1.252'
HTTP_X_REQUESTED_WITH: 'XMLHttpRequest'
ORGINAL_HTTP_HOST: 'galaxy_app'
ORGINAL_REMOTE_ADDR: '127.0.0.1'
PATH_INFO: '/tool_runner/index'
REMOTE_ADDR: '172.17.1.252'
REQUEST_METHOD: 'POST'
SERVER_NAME: '127.0.0.1'
SERVER_PORT: '8080'
SERVER_PROTOCOL: 'HTTP/1.0'
WSGI Variables
--------------
application: <paste.recursive.RecursiveMiddleware object at 0x98d8cd0>
is_api_request: False
paste.cookies: (<SimpleCookie: __utma='171448127.504006193.1380078797.1392167382.1394500277.13' __utmc='171448127' __utmz='171448127.1392167382.12.5.utmcsr=
duckduckgo.com|utmccn=(referral)|utmcmd=referral|utmcct=/'
galaxysession='dacacca08a0d5b7ec42fdebd408f7de21fe616408da7cc0a81d03a170f28a8adb286af52e48220be'>, 'galaxysession=dacacca08a0d5b7ec42fdebd408f7de21fe616408da7cc0a81d03a170f28a8adb286af52e48220be; __utma=171448127.504006193.1380078797.1392167382.1394500277.13;
__utmc=171448127; __utmz=171448127.1392167382.12.5.utmcsr=
duckduckgo.com|utmccn=(referral)|utmcmd=referral|utmcct=/')
paste.expected_exceptions: [<class 'paste.httpexceptions.HTTPException'>]
paste.httpexceptions: <paste.httpexceptions.HTTPExceptionHandler object at 0x98d8ad0>
paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x9c3ed50>
paste.recursive.forward: <paste.recursive.Forwarder from />
paste.recursive.include: <paste.recursive.Includer from />
paste.recursive.include_app_iter: <paste.recursive.IncluderAppIter from />
paste.recursive.script_name: ''
paste.throw_errors: True
request_id: '6193e9a2a9db11e388e10050568436c1'
webob._parsed_post_vars: (MultiDict([('history_id', '792704c2cfd232ef'), ('tool_id', 'upload1'), ('inputs', '{"dbkey":"?","file_type":"auto","files_0|type":"upload_dataset","files_0|url_paste":"","space_to_tabs":false}'), ('__files_0|file_data__is_composite',
'true'), ('__files_0|file_data__keys', 'name path'), ('files_0|file_data_name', 'seq_elements2.txt'), ('files_0|file_data_path', '/mnt/galaxy/data/galaxy/tmp/upload_store/0000000004')]), <FakeCGIBody at 7f4f001a8c90 viewing MultiDict([('hi...4')])>)
webob._parsed_query_vars: (MultiDict([]), '')
wsgi process: 'Multithreaded'
------------------------------------------------------------
--
Brad Langhorst, Ph.D.
Applications and Product Development Scientist