OSC / ood-fileexplorer

[MOVED] The Open OnDemand File Explorer
https://osc.github.io/Open-OnDemand/
MIT License
4 stars 1 forks source link

Add middleware to stream folder contents as a zip file. #102

Closed brianmcmichael closed 8 years ago

brianmcmichael commented 8 years ago

Adds a middleware function that intercepts calls to /oodzip + PATH and streams the contents of path as a zip file.

The existing /pack API creates tar.gz files that can only be opened on linux systems due to an end of file error.

This method creates .zip files which can be opened on Windows and OSC.

This will need a package.json and npm-shrinkwrap.json update to use the latest version of OSC/cloudcmd once it's tagged.

ericfranz commented 8 years ago

In the job constructor we do this: https://github.com/AweSim-OSC/osc-jobconstructor/blob/0dfce4b6db5cae188983b5a8cc477cf2f5e80b09/app/models/filesystem.rb#L57-L59

The idea is we verify if the size of the directory is too large to copy. If its too large to copy, its probably too large to zip! Maybe we should consider running this same command on the directory first, and displaying an error otherwise?

Also, if an error is produced, is it handled client side i.e. will the user see an alert with the error message?

brianmcmichael commented 8 years ago

Using this method the directories stream on the fly.

Because it is streaming, the zip isn't compressed.

There is no error message currently. This opens a hidden iFrame that makes the request. That should be a separate issue and we will need to weigh cost/benefit of a solution.

ericfranz commented 8 years ago

Yes but should we consider stopping a download could take "too long" or take up too much CPU? Maybe that fits in with the same category of preventing an upload that is too large - and in both cases directing the user to use sftp.osc.edu. @basilgohar will you weigh in?