A modern Ruby file upload library with configurable backends, direct uploads, and on-the-fly processing.
Refile is a modern file upload library for Ruby applications that simplifies handling file uploads with configurable backends like file system and Amazon S3. It solves the problem of managing file uploads efficiently by providing features such as direct uploads, on-the-fly processing, and seamless integration with ORMs.
Ruby on Rails developers and Ruby application developers who need a robust, flexible solution for handling file uploads with support for multiple storage backends and advanced features like image processing.
Developers choose Refile for its simplicity, powerful feature set, and modular design that allows easy integration with various storage backends and ORMs, along with built-in support for direct uploads and file processing without complex setup.
Ruby file uploads, take 3
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple backends including file system, Amazon S3, and Fog, allowing seamless integration with various cloud storage providers via plugins like refile-s3 and refile-fog.
Enables client-side uploads directly to backends like S3 with presigned URLs, reducing server load and improving upload speeds, as detailed in the presigned uploads section.
Allows dynamic image manipulation such as resizing and cropping through URL parameters, powered by processors like MiniMagick, which is easy to set up with the refile-mini_magick gem.
Integrates easily with ActiveRecord, Sequel, Mongoid, and pure Ruby classes via gems or macros, making it versatile for different Ruby projects without lock-in.
Files are always streamed through the application, which can bottleneck performance without a CDN, adding infrastructure complexity that the README explicitly warns about.
Direct and presigned uploads rely on JavaScript that doesn't support older browsers like IE9, limiting compatibility and requiring fallback strategies for legacy environments.
Direct uploads are open by default, and securing them requires additional setup like restricting backends or adding authentication hooks, which could lead to oversight in production.