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

Inspiration: Fine Uploader, Dropzone #59

Closed
hpvd opened this issue Mar 8, 2016 · 14 comments
Closed

Inspiration: Fine Uploader, Dropzone #59

hpvd opened this issue Mar 8, 2016 · 14 comments
Labels
💬 Discussion UI User Interface issues

Comments

@hpvd
Copy link

hpvd commented Mar 8, 2016

Maybe one could adopt / learn some interesting things
from https://github.com/enyo/dropzone
e.g.regarding

may help to reinvent the wheel in all details again...

Would be perfectly match to other awesome planned features of uppy!!!

@hpvd hpvd changed the title have alook at dropzone have a look at dropzone Mar 8, 2016
@kvz
Copy link
Member

kvz commented Mar 8, 2016

Thanks for the suggestion! I think we had an internal discussion on this and decided to adopt https://github.com/feross/drag-drop for our own DragDrop plugin, so it can deal with some browser edge cases, while staying relatively small dependency wise.

We are considering writing a Dropzone plugin, just for demo purposes.

We'll be discussing these with the team as well, they probably need to be added to other Plugins that we have:

abort function
progress visualisation
showing previews
and useful config options: http://www.dropzonejs.com/#configuration-options

Would you be interested to stay involved so we don't screw things up for your use-case? 😄

@hpvd
Copy link
Author

hpvd commented Mar 8, 2016

Would you be interested to stay involved so we don't screw things up for your use-case? 😄

would be a pleasure :-)

just send a hint where the demo with latest version could always be found and I'll do my best to document possible issue...

We are considering writing a Dropzone plugin, just for demo purposes.

This would be awesome and would help in at least 4 points

  • brings immediately enhanced drag and drop feature set to uppy (without building everything)
  • shows possibilities of connecting two very interesting projects
  • attract also the community of dropzone to look at uppy
  • give a nice and attractive looking demo to make more people looking for details (always important ;-)
  • ...

@hpvd
Copy link
Author

hpvd commented Mar 8, 2016

thanks for pointing to https://github.com/feross/drag-drop
looks also interesting! And it's "compact".

@kvz
Copy link
Member

kvz commented Mar 8, 2016

I like the way you're thinking! Thanks for the ideas!

As for the most recent demo, this our biggest one: http://uppy.io/examples/modal/index.html
As you can see, it's not much yet, but we're iterating fast!

@arturi arturi added the Feature label Apr 25, 2016
@arturi
Copy link
Contributor

arturi commented Jul 19, 2016

It has been mentioned on Hacker News that Fine Uploader http://fineuploader.com/ is also a worthy library to look at, and from the first look it seems so, I hope we can implement the best from it too.

@rnicholus
Copy link

rnicholus commented Jul 20, 2016

Fine Uploader is MIT too. If uppy can benefit from any of the hard work I've put into Fine Uploader over the years, let me know. Perhaps some work can be done to carve out some of the more complicated FU features, such as concurrent chunking, image scaling, folder uploads, upload to S3, or upload to Azure, and turn them into standalone npm modules for other libraries to use. I would certainly be willing to talk more about this or anything else with the transloadit folks.

@kvz
Copy link
Member

kvz commented Jul 20, 2016

Hi @rnicholus! While we were working on tus, we (Transloadit) have always been recommending our customers to use Fine Uploader if they required resumability, and letting us import from their bucket to do the processing. Hence, it's great to see you reach out, thanks!

As you maybe have seen, we have finalized tus. We see tus as a great way to deploy resumability in a non-vendor-locked-in way. However, direct S3 upload (or Azure for that matter), remains a great solution for people to whom that is an acceptable trade-off, towards not having to run and scale their own infra.

So we see a great future for both, and our goal with Uppy is to offer as many sensible plugins as possible, and let the user, or a preset, decide what makes for the use-case at hand. In this light, we are very interested in adopting FineUploader's years of experience, especially when it comes to directly uploading to these vendors. The suggested approach of carving out your work into separate re-usable modules seems very appealing. Is there any way we can assist you in this?

@rnicholus
Copy link

rnicholus commented Jul 20, 2016

I do vaguely recall talking to some someone or some people at Transloadit years ago re Fine Uploader integration, but I can't recall the specifics. May have been a Twitter discussion. Anyway, I'm certainly all for further modularizing Fine Uploader. As already mentioned, this allows useful pieces to be pulled into other libraries, but it also provides additional focus and isolation when sorting out and fixing bugs and features.

That said, I think the first step is to identify the most useful components of Fine Uploader as candidates for refactoring into standalone npm modules. The library already has a number of its features and endpoint handlers divided up into specific source files, but there are still inter-dependencies that may need to be removed or addressed in some way to make some of these truly standalone. Even the DnD "module", which handles file and folder dropping, depends on other internal modules to some degree.

Most of my available FOSS time is currently spent answering questions from users/integrators on Stack Overflow, along with feature requests and bug reports in the project's issue tracker. After that, I've been focusing more lately on react-fine-uploader, which is a project that aims to wrap Fine Uploader core and duplicate Fine Uploader UI as a series of very focused React components, along with a wrapper for Fine Uploader core that provides additional conveniences, such as the ability to register multiple handlers for a specific event/callback (something that is needed by the React components).

But I'd still be open to further discussions, direction, and coding to help with the efforts associated with modularizing Fine Uploader, as time allows. Also, feel free to ask any questions that may come up during your development of uppy. Perhaps my experience in this area can be of some help as well.

@arturi arturi changed the title have a look at dropzone Inspiration: Fine Uploader, Dropzone Aug 9, 2016
@arturi arturi added 💬 Discussion UI User Interface issues and removed Feature labels Mar 11, 2017
@sjelfull
Copy link

Re. FineUploader/fine-uploader#1881 it would be great if you talked again!

I would love to see some more of Fine Uploader's features as plugins. Especially chunked uploading would be great.

@kvz
Copy link
Member

kvz commented Sep 29, 2017

Thanks for reaching out! How exactly do you mean chunked uploading? Don't our Tus and S3 plugins already support that? Are you looking for something special here? (I'm likely overlooking something)

@kvz
Copy link
Member

kvz commented Sep 29, 2017

Perhaps you're talking about:

upload multiple chunks for the same file concurrently

? This is something the tus protocol supports via the Concat extension, but we haven't enabled just yet. With browsers limiting how many connections they're willing to open to the same domain, we'd have to wonder (no, test) really how much faster uploads will become in that environment tho.

For good measure, I think it's interesting to maybe list Fine Uploaders features and see if we have parity or no (this is not an exhaustive list of Uppy features, just comparing against FU):

  • Auto and manual upload --
  • Cancel uploads --
  • Drag and Drop -- Drag and drop files (and even folders in Chrome and Opera) straight from your desktop.
  • ES6 modules & CommonJS support --
  • File Chunking / Partitioning (chunking) -- Splitting a file into smaller pieces allows for a more efficient overall upload, and powers some Fine Uploader features such as pausing, and resuming uploads. Fine Uploader can also upload multiple chunks for the same file concurrently.
  • Image Previews & Scaling (previews) -- Give your users an in-browser preview of images before they upload. You can even have scaled versions of images generated and uploaded automatically, keeping EXIF data intact.
  • Multiple file selection --
  • Paste to upload --
  • Pause / Resume Uploads -- Pause an in-progress upload when you know you are about to go offline, and safely resume them again right where you left off.
  • Progress Bar -- A fully customizable progress bar is included in UI mode. Core users can build their own with the help of a friendly API.
  • Retry -- Sometimes the network misbehaves. Fortunately, Fine Uploader can detect these sorts of disturbances and notify the user, or even automatically retry uploading the failed piece.
  • Upload to the Cloud (S3) -- Send files directly to Amazon’s Simple Storage Service (S3) or Microsoft Azure's Blob Storage service to minimize backend code and scale with the number of users. You can even optionally bypass your local server entirely with S3.
  • Validators -- Limit your users to a specific file type, size limit, number of files, image dimensions, or write your own custom validator.
  • CORS (cross-origin) support --
  • Delete Uploaded Files -- Upload the wrong file? Use this feature to delete what you don't need.
  • Edit file names --
  • File Chunking / Partitioning (parallel uploading) -- Splitting a file into smaller pieces allows for a more efficient overall upload, and powers some Fine Uploader features such as pausing, and resuming uploads. Fine Uploader can also upload multiple chunks for the same file concurrently.
  • Image Previews & Scaling (scaling) -- Give your users an in-browser preview of images before they upload. You can even have scaled versions of images generated and uploaded automatically, keeping EXIF data intact.
  • Integrate with an existing form --
  • Multiple upload buttons --
  • Provide initial list of files --
  • Simple to Style and Customize --
  • Upload from mobile camera --
  • Upload to the Cloud (Azure) -- Send files directly to Amazon’s Simple Storage Service (S3) or Microsoft Azure's Blob Storage service to minimize backend code and scale with the number of users. You can even optionally bypass your local server entirely with S3.

^-- Not sure about a few of these. Also not sure if we'll want to support all of these

@oyeanuj
Copy link

oyeanuj commented Sep 30, 2017

@kvz Quick question on the list above - does Uppy not upload chunks in parallel via Tus today or is this item referring to some more nuanced feature?

File Chunking / Partitioning (parallel uploading) -- Splitting a file into smaller pieces allows for a more efficient overall upload, and powers some Fine Uploader features such as pausing, and resuming uploads. Fine Uploader can also upload multiple chunks for the same file concurrently.

@kvz
Copy link
Member

kvz commented Oct 1, 2017 via email

@goto-bus-stop
Copy link
Contributor

I'll close this since I don't think this issue is actionable right now—we have separate open PRs or issues for several of the features in @kvz's list overview and if someone needs another feature they can open a specific issue for it too. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💬 Discussion UI User Interface issues
Projects
None yet
Development

No branches or pull requests

7 participants