Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable asset upload #705

Open
waxlamp opened this issue Jan 3, 2022 · 5 comments
Open

Enable asset upload #705

waxlamp opened this issue Jan 3, 2022 · 5 comments
Labels
enhancement New feature or request UX Affects usability of the system

Comments

@waxlamp
Copy link
Member

waxlamp commented Jan 3, 2022

We need a way to upload assets from the web app, since most intended users of the archive will expect to be able to do that.

See dandi/dandiarchive-legacy#380 (comment).

@waxlamp waxlamp transferred this issue from dandi/dandiarchive-legacy Jan 13, 2022
@waxlamp waxlamp added enhancement New feature or request UX Affects usability of the system labels Jan 13, 2022
@yarikoptic
Copy link
Member

How realistic and "important" this to be done in any foreseeable future? ATM "upload" involves validation, metadata extraction, possibly fancy multi-threaded uploading for zarrs etc. May be with some https://pyodide.org compiled dandi-cli implementation though...

@satra
Copy link
Member

satra commented Jul 29, 2022

i would say we need to focus on users that do not know the terminal, but let's consider all the things that would need to be done for such users.

@waxlamp
Copy link
Member Author

waxlamp commented Aug 3, 2022

At the moment, we tell users to go to the CLI for any upload needs at all. I'm just suggesting that if there is a feasible upload path for, say, single NWB files in the frontend, that's something we might be able to support without much trouble, while still leaving difficult cases like Zarr upload to other mechanisms.

I consider this a major usability issue for the archive as it currently operates. But this would be a great thing to discuss in depth, because perhaps I am misunderstanding the need for it. My argument comes down to: the DANDI Archive is a web application that lets people log in, download data, and create dandisets, but it doesn't allow upload when the average user would expect it to. This would address the "data upload" part of the archive's mission.

I'm also not suggesting we work on this right away, but it would be good to get some clarity on how important this is to us.

@satra
Copy link
Member

satra commented Aug 3, 2022

@waxlamp - i agree with this being available, but this upload interface would still have to implement some of the sanity checks and validation that the CLI currently does.

@yarikoptic
Copy link
Member

An idea: may be it would be some basic/naive JS upload script, uploading to some staging area on some EC, then (optionally if requested) running dandi organize, checking with user if ok, and then dandi validate and only then triggering actual upload from that EC2 to the archive if all good. if validation fail -- ask to either ignore or to reupload or fixup...

for reupload - if naive JS would not be that naive but implement some rsync like block-wise checksumming index (may be some node rsync implementation) for that upload and for reupload reuploads only changed parts (e.g. only some metadata changed) -- that would be quite nice.

for fixup - give some interface to change that nwb, e.g. metadata, so it could be changed straight on EC2, without causing traffic again. Might be actually even just creating the .overwrite.json file to accompany (hdmf-dev/hdmf#677 (comment))

May be all of that could be actually interfaced through some /uploads/interactive/{initialize,{upload_id}/reply} interfaces going through those stages described above and then JS just being a quite dummy interpreter for the questions which API would provide in response and user would provide responses in /reply.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request UX Affects usability of the system
Projects
None yet
Development

No branches or pull requests

3 participants