Re:Shrine – A new solution for handling file uploads in Ruby
by janko-m on Tuesday October 27, 2015 @09:48PM
(#10462423)
"Upfront" processing means that you're doing the processing during upload, and on the "on-the-fly" processing means that you first upload the file, and then it's processed dynamically through the URL. For example, in Refile you make an URL to the uploaded file like this:
/attachments/sdkd/resize/300/300
That will make Refile trigger the specified processing at the moment the URL is requested. You should then put a CDN or a reverse proxy in front to kind of cache these processed files, so that they're not processed each time.
About the documentation, I wrote documentation for each of the plugins, and I linked them all on http://shrinerb.com. The plugin names should hopefully indicate what feature they accomplish, and since they're all individual, it's up to the user to choose what features they want (i.e. combination of plugins).
Re:Shrine – A new solution for handling file uploads in Ruby
by jrochkind1 on Wednesday October 28, 2015 @09:40AM
(#10464331)
So "up front" still includes doing the processing in a background job async, as long as it's triggered at point of upload, not at point of request?
"upfront" but async background does seem to be the best way to approach it to me, at least if you had to pick one -- that's what Shrine does?
Re:Shrine – A new solution for handling file uploads in Ruby
by janko-m on Wednesday October 28, 2015 @04:16PM
(#10467080)
Yes, you got it right, this is exactly what it means. Yeah, there are some rare use cases for on-the-fly processing (think a WYSIWYG editor where the user can choose the size of the image), but for me upfront definitely works best.
Re:Shrine – A new solution for handling file uploads in Ruby
by jrochkind1 on Wednesday October 28, 2015 @04:25PM
(#10467133)
Cool. I'd call those two choices "upon upload" (instead of 'upfront'), and "upon first view" (instead of "on the fly"), but I'm sure my terminology would confuse someone else too.
This looks very nice. It'll need lots of docs with examples to understand how to put together the nicely flexible building blocks you provide.