ahmedkandel / nova-s3-multipart-upload

A Laravel Nova resource tool to upload files directly to Amazon S3. You can (upload | download | delete) single, multiple, small or big files.
MIT License
22 stars 22 forks source link

Percent complete gets to 100 too fast, then spins for quite a while #6

Closed bryanjamesmiller closed 3 years ago

bryanjamesmiller commented 3 years ago

Hey, thanks for the great package. Just a quick suggestion - in my project, the "% complete" field (which is the whole reason we decided to use your package was because we wanted this type of field) gets to 100% on a simple upload of 1 large file really fast, but then it keeps spinning for quite some time before it says "complete". I am guessing the file is not actually fully uploaded when it gets to 100%. I'm wondering if you could actually make this stop at 99% because you have a nice "complete!" graphic that appears and the % disappears once the file has been fully uploaded. No reason to say it's 100% uploaded ever, in other words, or some users may try to navigate away from the page too soon.

Of course, if you could make the % more accurately reflect the actual percentage that would be nice too, if it's not possible to hardcode in a 99% max upload status.

The same is true for the "seconds left" field. If you could have this field show a minimum of 1s left, that would be better than 0s which may also cause some users to navigate away from the page too soon.

Thanks again for the great work!

Screenshot at Dec 04 23-49-52

ahmedkandel commented 3 years ago

In order to upload big files the Uppy uploader included in this package chunks the file in small pieces before uploading then when all the pieces are uploaded it request AWS S3 to glow them in one file.

So the 100% and 0s left time are related to the uploading process while the complete badge is related to succeed postprocessing. They are totally separated processes. So the current behaviour is expected.

If you are afraid that the end-user may not understand that, you can't use the ->footerNote($string) method to give them a warning to wait the complete badge.

Otherwise we are planning to implement events callbacks in future versions so you will be able to show toaster messages after each step telling the user that the file is currently being postprocessed.

bryanjamesmiller commented 3 years ago

Thanks for the quick responses. That ->footerNote($string) may be a good idea. I do think users will generally be confused by the 100% and 0s, even if what is shown is expected from a technical point of view, they won't know that. At least there is still something spinning when it says that with the pause icon to indicate maybe it's not done yet. The toaster messages sound like a good addition too. 👍