Ruby on Rails integration handles uploads and file operations by wrapping uploadcare-ruby gem. It will let you use most of the Uploadcare features from within your Ruby on Rails app.
- Upload files from local storage and URLs (up to 5 TB)
- Multipart uploading for large files
- Uploading network to speed uploading jobs (like CDN)
File management features:
- Get file info and perform various operations (store/delete/copy) with them
- Work with groups of files
- Get info about account project
- Manage webhooks
- Convert documents
- Encode and transform videos
- Secure authentication
- Secure uploads (signed uploads)
- Secure delivery (authenticated URLs)
Add this line to your application's Gemfile:
And then execute:
$ bundle install
$ gem install uploadcare-rails
To start using Uploadcare API you just need to set your API keys (public key and secret key).
These keys can be set as ENV variables using the
$ export UPLOADCARE_PUBLIC_KEY=demopublickey $ export UPLOADCARE_SECRET_KEY=demoprivatekey
Or you can use popular gems like
dotenv-rails for setting ENV variables.
Run the config generator command to generate a configuration file:
$ rails g uploadcare_config
The generator will create a new file in
The public key must be specified in
config/initializers/uploadcare.rb to use Uploadcare file upload.
This step is done automatically in the initializer if you set the ENV variable
... Uploadcare::Rails.configure do |config| # Sets your Uploadcare public key. config.public_key = ENV.fetch("UPLOADCARE_PUBLIC_KEY", "demopublickey") ... end
There are also some options set by default:
... # Deletes files from Uploadcare servers after object destroy. config.delete_files_after_destroy = true # Sets caching for Uploadcare files config.cache_files = true # Available locales currently are: # ar az ca cs da de el en es et fr he it ja ko lv nb nl pl pt ro ru sk sr sv tr uk vi zhTW zh config.locale = "en" # If true, inputs on your page are initialized automatically, see the article for details - # https://uploadcare.com/docs/file-uploader-api/widget-initialization/ config.live = true # If true, input initialization is invoked manually. # See https://uploadcare.com/docs/file-uploader-api/widget-initialization/). config.manual_start = false
Then you can configure all global variables such as files storing/caching, deleting files, etc. Full list of available options is listed in the file itself. Just uncomment an option and set the value.
Read the full documentation on GitHub.