Thanks Nate! That's very helpful. -----Original Message----- From: Nate Coraor [mailto:nate@bx.psu.edu] Sent: Friday, June 08, 2012 3:31 PM To: Dorset, Daniel C Cc: galaxy-dev@lists.bx.psu.edu Subject: Re: [galaxy-dev] How does Galaxy access datasets? On Jun 5, 2012, at 6:08 PM, Dorset, Daniel C wrote:
I'm trying to troubleshoot why I can't retrieve output from my Galaxy cluster instance. I notice that when I click on any output, the URL is something like:
http://[root galaxy address]/datasets/[some 16-character hash]/display/[file name]
I'm not able to find the "datasets" directory on the local machine, and I couldn't figure anything out by searching the paster.log file and the apache access and error logs. Everytime I try to access output, it downloads a zero-byte file. The files that I want to download through Galaxy are in the correct subdirectory of /database/files/... If someone could explain to be what's going on "behind the scenes," it would help me quite a bit. I'm guessing that the absolute path is stored in a database, but beyond that I don't know any specifics. If that's the case, knowing the relevant database tables would be a huge hint.
Hi Dan, The hash is decoded and converted to an ID using code in lib/galaxy/web/security/__init__.py and the value of id_secret in universe_wsgi.ini. The decoded id is then passed to code in lib/galaxy/objectstore/__init__.py to assemble the path underneath galaxy-dist/database/files/ You may find galaxy-dist/scripts/helper.py in converting history dataset IDs to filesystem paths (they are also available directly in the web interface if you are an administrator or set expose_dataset_path = True in universe_wsgi.ini). --nate