Skip to content

dncrht/paperclip-imgur

Repository files navigation

Paperclip::Imgur

This gem extends Paperclip with Imgur storage. It's been tested with Paperclip 3.3.1, 4.3 and 5.1.

If you want Paperclip Dropbox support, have a look at this great gem.

Installation

Add this line to your application's Gemfile:

gem 'paperclip-imgur'

And then run:

$ bundle install

Usage

Tell your typical model™ to use Imgur as storage:

class User < ActiveRecord::Base
  has_attached_file :avatar, storage: :imgur
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\z/
end

Credentials

The credentials to upload and delete images from Imgur will be read from #{Rails.root}/config/imgur.yml. This file must contain the following keys:

client_id: 'CLIENT_ID'
client_secret: 'CLIENT_SECRET'
access_token: 'ACCESS_TOKEN'
refresh_token: 'REFRESH_TOKEN'
use_ssl: false

use_ssl is an optional, boolean key. When omitted, it's considered as false.

Get these keys with:

rake imgur:authorize CLIENT_ID='CLIENT_ID' CLIENT_SECRET='CLIENT_SECRET'

Please refer to the API client gem documentation for more information on this. Create an application if you don't have those client keys yet.

You can also specify the credentials per model attribute, using a hash:

has_attached_file :avatar, storage: :imgur, imgur_credentials: {client_id: 'CLIENT_ID', client_secret: 'CLIENT_SECRET', access_token: 'ACCESS_TOKEN', refresh_token: 'REFRESH_TOKEN'}

…or path to a YAML file

has_attached_file :avatar, storage: :imgur, imgur_credentials: 'path.to/file.yml'

…or a File itself

has_attached_file :avatar, storage: :imgur, imgur_credentials: File.open('path.to/file.yml', 'r')

Use attachment in views

The image is available in your views in three different sizes:

<%= image_path @user.avatar %>
<%= image_path @user.avatar.url(:small) %>
<%= image_path @user.avatar.url(:large) %>

Deleting images

To delete an image, follow the usual Paperclip procedure:

@user.avatar = nil
@user.save

Testing

Run specs with

rspec

About

Extends Paperclip with Imgur storage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages